私は同様の問題について何十もの投稿を読みましたが、これを理解することはできません。
私のサイトには、次のようなSEO対応のURLがあります...
http://www.website.com/tequila/bottle-name.html
http://www.website.com/whiskey/bottle-name.html
http://www.website.com/vodka/bottle-name.html
...ここで、bottle-nameはボトルの実際の名前です。
実際にページを配信するために、PHPハンドラーに対してmod_rewriteを実行しています。各ハンドラーは、各ディレクトリ(テキーラ、ウォッカ、ウイスキー)にあります。
最初のもの(テキーラ)は機能していますが、他の2つは機能しておらず、理由がわかりません。
これが私が今持っているmod_rewriteコードです...
#Rewrite seo urls
RewriteCond %{REQUEST_URI} !^/tequila/
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\.html$ index.php?liquor=$1&liquor-type=tequila [L]
RewriteCond %{REQUEST_URI} !^/whiskey/
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\.html$ index.php?liquor=$1&liquor-type=whiskey [L]
RewriteCond %{REQUEST_URI} !^/vodka/
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\.html$ index.php?liquor=$1&liquor-type=vodka [L]
起こっているように見えるのは、ウイスキーとウォッカのページがテキーラmod_rewriteによってキャッチされ、処理されていることです(ここのリストの最初にあるため推測します)。
したがって、http://www.website.com/vodka/vodka-bottle.htmlは実際にはhttp://www.website.com/tequila/index.php?liquor=vodka-bottle.html&liquor-type=として書き直されています。テキーラ。
RewriteCond%{REQUEST_URI}!^ / tequila/を正しく設定していないようです。
誰もが提供できるヘルプやポインタは大歓迎です!