2017-11-07 13 views
0

私は、次のコードでDrupalサイトのルートに新しいの.htaccessファイルを追加しようとしました:.htaccess code broken site?

# Redirect all users to access the site WITH the 'www.' prefix 
RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteCond %{HTTP_HOST} !\.([a-z-]+\.[a-z]{2,6})$ [NC] 
RewriteRule^http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

が、今私は、ホームページではありませんすべてのページにこのエラーが発生します。助けてください!私はwww.website.com/productsに行くもしそうなら、私はこれを取得:

Not Found 
The requested URL /products was not found on this server. 

Apache/2.4.7 (Ubuntu) Server at www.website.com Port 443 

はこの上記の.htaccessコードに関連した「見つかりません」となっていますか?

+0

私はそれが原因であるとは思えません。そのスニペットはドメイン名に 'www.'を強制するためのものです。リクエストがfile.extensionのように終わると、 'www.'接頭辞を追加しようとしない点を除いて、それ以上のことはしません。 – jaswrks

+0

返信いただきありがとうございます! .htaccessを追加したのと同時にエラーに気づいたのは偶然かもしれないと思ったが、わからなかった。 mod_rewriteがオンになっていない場合、.htaccessを追加すると混乱し、Apacheが再起動する必要がありますか? – foolstack

+0

はい、 'mod_rewrite'を有効にせずにこれを使用して有効にした場合、キックインへの変更には再起動が必要です。すなわち、新しいモジュールをロードする。つまり、通常の状況下では、 '' htaccess'ファイルの編集後にApacheを再起動する必要はありません。 – jaswrks

答えて

0

[OK]を、ので、私はここでの問題を発見しましたファイルがであったので、私は.htaccessファイルをアップロードしましたが、実際には誤ってそこにあった.htaccessファイルを上書きしてしまいました。元の.htaccessファイルに戻ってこのコードを追加すると、すべて正常に動作します。

0

通常、ポート443はHTTPSに使用されます。それを処理する最善の方法は、幻影である。バーチャルホストのルートを使用して、あなたが何かしようとするだろう:.htaccessのルートを行く

<VirtualHost *:80> 
    ServerName www.example.com 
    Redirect "/" "https://www.example.com/" 
</VirtualHost> 

<VirtualHost *:443> 
    ServerName www.example.com 
    # ... SSL configuration goes here 
</VirtualHost> 

を、あなたはこのような何か試してみたいことがあります。

RewriteCond %{HTTPS} off [OR] 
RewriteCond %{HTTP_HOST} ^www\.example\.com* 
RewriteRule ^(.*)$ https://example.com/$1 [L,R=301] 
関連する問題