0

私は同様の問題について何十もの投稿を読みましたが、これを理解することはできません。

私のサイトには、次のような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/を正しく設定していないようです。

誰もが提供できるヘルプやポインタは大歓迎です!

4

1 に答える 1

1

なぜあなたは^/tequila/?Theを否定するのですか?!あなたがリストしたものではなく、他のすべての酒の種類と一致するでしょう。

于 2012-07-24T12:42:46.483 に答える