我已经阅读了数十篇关于类似问题的帖子,但我无法弄清楚这一点。
我的网站上有 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/ ?
非常感谢任何人可以提供的任何帮助或指示!