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

...其中瓶子名称是瓶子的实际名称。

我正在对 PHP 处理程序进行 mod_rewrite 以实际交付页面。每个处理程序位于每个目录中(龙舌兰酒、伏特加酒、威士忌)。

第一个(龙舌兰酒)有效,但其他两个没有,我不知道为什么。

这是我现在拥有的 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 回答