我已经阅读过几十篇关于类似问题的帖子,但我无法理解这一点。
我的网站上有SEO友好网址,看起来像这样......
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以实际传递页面。每个处理程序都位于每个目录中(龙舌兰酒,伏特加,威士忌)。
第一个(龙舌兰酒)正在运作,但其他两个不是,我无法弄清楚原因。
这是我现在拥有的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=tequila。
好像我没有设置RewriteCond%{REQUEST_URI}!^ / tequila /正确吗?
非常感谢任何人提供的任何帮助或指示!
答案 0 :(得分:1)
为什么要否定^/tequila/?
!
会导致所有其他酒类型的匹配,而不是您列出的那种。