1

2 つの mod_rewrite を同時に組み合わせると、.htacess で問題が発生します。

  • 末尾のスラッシュを削除
  • 非 www を www にリダイレクト

ここに私の.htaccessファイルがあります

Options +FollowSymLinks
RewriteEngine On
RewriteBase /

# Redirect non-www to www
RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC]
RewriteRule ^(.+)/$ http://www.domain.com/$1 [R=301,L]

# Remove trailing slash
RewriteCond %{HTTP_HOST} ^domain.com
RewriteRule (.*) http://www.domain.com/$1 [R=301,L]

それらの1つを使用したときは完全に機能しましたが、それらを組み合わせると、ページが永遠にロードされ続けます.

同じ .htaccess で両方を使用できる方法を見つけるのを手伝ってください

4

2 に答える 2

1

HTACCESS を使用した WWW への非 WWW URL:

次のコードを .htaccess ファイルに追加できます。ウェブサイトのルート ディレクトリにあります。見つからない場合は、テキスト エディターでこれをコピーして .htaccess として保存し、アップロードしてください。

ps:先に進む前に、必ず .HTACCESS ファイルをバックアップしてください。コードが正しくないと、500 エラーが発生する可能性があります。



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


末尾のスラッシュを削除

末尾のスラッシュをオフにするときは注意してください。ホストで mod_dir が有効になっている場合は、デフォルトで有効になっているディレクトリ スラッシュをオフにしてください。このディレクティブは、設定したルールに関係なく、ディレクトリの末尾にスラッシュを追加します。これを無効にするには、これを htaccess ファイルの先頭に追加します。


DirectorySlash Off

デフォルトでは、ブラウザーやサーバーでさえ、ディレクトリの末尾にスラッシュが追加されます。それは理由があって行われます。ただし、末尾のスラッシュを削除する必要がある場合は、次のようにします。



    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_URI} !(.*)$
    RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]


于 2014-08-25T13:57:27.923 に答える