.htaccess的奇怪行为

时间:2012-03-21 12:00:00

标签: .htaccess mod-rewrite

我有以下.htaccess文件给我网页

Options +FollowSymLinks
RewriteEngine on
RewriteRule ^(.*)-(.*)-offers.html$   current-offers.php?id=$2 [L] 
RewriteRule ^(.*)-(.*).html$   vpn-offer-detail.php?id=$2 [L]
RewriteRule ^(.*)-(.*)-details.html$   vpn-provider-detail.php?id=$2 [L]

我实际上是想通过htaccess文件实现SEO freindly URL。当我将文件上传到我的网页目录中时,我陷入了一些奇怪的境地。

看起来重写规则1(针对优惠)是可以的,条件2也可以,

但是,进入条件3,(vpn provider detail.php),发生了混乱......浏览器正确显示了url,但显示的页面内容不是vpn provider.php。相反,内容正在显示条件一(current offers.php)。我无法理解为什么会发生这种情况。请注意,URl在浏览器中显示应该是,但页面的内容是current_offers.php(重定向到它,但没有显示内容)

有人可以指导我吗?并告诉我我的代码有什么问题?或者为什么会发生这种情况?

感谢..

1 个答案:

答案 0 :(得分:1)

这是一个有序的问题。

Hide-My-Ass-1009-details.html 未通过第一个条件,但通过第二个条件并使用[L] - 这意味着最后一个 - 它适用于此条件。

快速解决方案应该是

Options +FollowSymLinks
RewriteEngine on
RewriteRule ^(.*)-(.*)-offers.html$   current-offers.php?id=$2 [L] 
RewriteRule ^(.*)-(.*)-details.html$   vpn-provider-detail.php?id=$2 [L]
RewriteRule ^(.*)-(.*).html$   vpn-offer-detail.php?id=$2 [L]
相关问题