2012-11-29 31 views
0

我的规则如下:的.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] 

第二条规则是有冲突,以第一条规则和重定向到第一条规则或页面。 我不知道为什么会发生这种情况。

回答

0

我不知道为什么会发生这种情况。

发生这种情况是因为两个规则都与完全相同的模式匹配。两者都与^([a-zA-Z0-9_-]+)$相匹配,所以第二条规则永远不会被应用,因为第一条规则总是匹配。没有办法解决这个问题,因为无法区分应该是doctor_viewprofile.phpblog_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] 
+0

感谢乔恩链接你的答案。我以这种方式知道这是可能的。但我想要的方式与没有/博客或/医生描述。有没有解决方法? – user1803240

+0

@ user1803240除非有办法将2分开,否则,没有其他解决方案。 –

+0

感谢Jon Link的回答。有什么办法可以区别2吗? – user1803240