.htaccess规则与先前定义的规则冲突

时间:2014-06-26 14:26:36

标签: .htaccess

现在我有以下.htaccess规则:

RewriteRule ^(.*)/(.*)_([0-9]+)/$ index.php?section_permalink=$1&content_permalink=$2&content_id=$3 [QSA,L]
RewriteRule ^(.*)/p-([0-9]+)/$ index.php?section_permalink=$1&page=$2 [QSA,L]
RewriteRule ^(.*)/$ index.php?section_permalink=$1 [QSA,L]

一切正常,但如果我添加以下规则,每次我尝试访问/ route / 10 /(例如)时,我都会被重定向到主页。

RewriteRule ^route/(.*)/$ route.php?route=$1 [QSA,L]

如何重写此规则以避免此问题?

谢谢。

1 个答案:

答案 0 :(得分:0)

RewriteRule按照文件中的顺序执行。 RewriteRule ^(.*)/$ index.php?section_permalink=$1 [QSA,L]与网址匹配,网址被重写为index.php?section_permalink=route/10。这与您的下一个重写不匹配。

交换更具体的规则,并且或多或少的全能规则将解决问题,因为将首先匹配更具体的规则。