.htaccess与同一规则冲突

时间:2012-11-29 11:39:32

标签: .htaccess

我的规则如下:

RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)$ doctor_viewprofile.php?hid2=$1 [L,NC]
RewriteRule ^([a-zA-Z0-9_-]+)$ blog_mgt_full.php?a=$1&cuserid=$2&cusertype=$3 [L,NC]

第二条规则与第一条规则冲突,并重定向到第一条规则或页面。 我不确定为什么会这样。

1 个答案:

答案 0 :(得分:0)

  

我不确定为什么会这样。

这种情况正在发生,因为两个规则匹配完全相同的模式。两者都匹配^([a-zA-Z0-9_-]+)$,因此第二条规则永远不会被应用,因为第一条规则始终匹配。没有办法解决这个问题,因为没有办法区分什么应该是doctor_viewprofile.php和什么应该是blog_mgt_full.php。您可以尝试添加前缀,以使您的网址看起来像

http://www.domain.com/doctor/foo

http://www.domain.com/blog/foo

所以规则可以改为:

RewriteRule ^doctor/([a-zA-Z0-9_-]+)$ doctor_viewprofile.php?hid2=$1 [L,NC]
RewriteRule ^blog/([a-zA-Z0-9_-]+)$ blog_mgt_full.php?a=$1&cuserid=$2&cusertype=$3 [L,NC]