web-dev-qa-db-ja.com

Apache htaccessを使用してwwwをwww以外にリダイレクトすることはできません

。htaccessにこれがあります(デフォルトのDrupal 。htaccessから変更):

RewriteCond %{HTTP_Host} ^www\.website.com\.com$ [NC]
RewriteRule ^(.*)$ http://website.com/$1 [L,R=301]

理論的には、これはhttp://www.website.com/asdfのようなものをhttp://website.com/asdfにリダイレクトします。ただし、リダイレクトは行われず、意図されたリダイレクトがなかったようにリクエストを通過させることができます。

(問題があればOS Xを使用していますが、Network Solutions Linuxサーバーでも同じ結果を試してみました。)

3
Josh The Geek

まだ行っていない場合は、.htaccessファイルで書き換えエンジンを有効にする必要があります...

RewriteEngine on
RewriteCond %{HTTP_Host} ^www\.example\.com$ [NC]
RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]

質問にあるRewriteCond行の余分な.comを削除したことに注意してください-これはタイプミスだと思いますか?

また、FollowSymLinksも有効にする必要があります(まだ有効になっていない場合)(上記の前に表示されます)

Options +FollowSymLinks

それでも何もしない場合は、.htaccessファイル(またはこれらのディレクティブ)がまったく処理されていない可能性があります。 (ナンセンスを入力してテストし、壊れるかどうかを確認できます!)その場合は、サーバーのconfig/virtual Host設定でAllowOverrideディレクティブを探し、AllowOverride Allに設定します(たとえばNoneに設定)-またはホストでこれをクエリします。

3
MrWhite