.htaccessファイルでいくつかのmod_rewriteルールを連携させるのに問題があります。全体のサイト全体で「www」を削除したいと思います。すべてのURLから。ドキュメントルートで次のものを使用しています。
Options +FollowSymLinks
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301]
次に、1つのフォルダ「/help」で2回の書き換えを行います。
- domain.com/help/1をdomain.com/index.php?question=1に変更します
- domain.com/help/category/exampleをdomain.com/index.php?category=exampleに変更します
したがって、domain.com / helpには、次のものがあります。
Options +FollowSymLinks
RewriteRule ^([0-9]+)/?$ index.php?question=$1 [NC,L]
RewriteRule ^category/([^/\.]+)/?$ index.php?category=$1 [NC,L]
上記の2つの.htaccessファイルは次の場合に機能します:
www.domain.comからdomain.comdomain.com/help/1
から
domain.com/index.php?question=1domain.com/help/category/example to domain.com /index.php?category=example
しかし、2つの書き換えを組み合わせて両方とも「www」を削除する必要がある場合、これは機能しません。サブフォルダをurl変数に書き換えます。例:
www.domain.com/help/1からdomain.com/index.php?question=1
にすると、500エラーが発生します。
どこで私は間違えましたか?そして、これは2つの.htaccessファイルで行うのが最善ですか、それとも2つのファイルをドキュメントルートで1つの.htaccessファイルに結合できますか?