2012-11-29 35 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