2013-03-05 35 views
0

我已經使用瞭如此多的代碼來重定向我的子文件夾url,但無法正常工作。Htaccess單獨爲我的域子文件夾工作

From :: http://www.mydomain.com/doctor/searchresult.php?txtcity=Chennai&txtarea=Annanagar 

To :: http://www.mydomain.com/doctor/Chennai/Annanagar 

所使用的htaccess的代碼下面給出

RewriteRule ^doctor/([a-zA-Z0-9_-]+)/searchresult$ /doctor/searchresult.php?txtcity=$1&txtarea=$2 [R=301,L] 

RewriteRule ^([a-zA-Z0-9_-]+)/doctor/$ searchresult.php?txtcity=$1&txtarea=$2 

RewriteRule ^doctor/([a-zA-Z0-9_-]+) /doctor/searchDocResult.php?selFindDocCity=$1&txtFindDocAreaRzip=$2 [L] 
+0

你想完成什麼?第一條規則是外部重定向(意思是「txtcity」變體是公開可見的)。規則引用匹配'$ 1'和'$ 2',但每個只有一個捕獲組。在這種情況下'searchDocResult.php'是做什麼的? – 2013-03-05 18:26:31

回答

0

假設你只是想第一個URL重定向到第二上市的URL,這是我的服務器上的作品。

有一點要注意的是,他們列出的順序確實有所作爲。最具體的需要首先列出,這樣一個txt城市內的所有txtarea必須按照下面的示例首先列出。

祝你好運,讓我知道它是如何爲你工作的。

[email protected]

RewriteCond %{HTTP_HOST} ^(www\.)?mydomain.com [NC] 
RewriteCond %{REQUEST_URI} searchresult\.php 
RewriteCond %{QUERY_STRING} txtarea=Annanagar 
RewriteRule .* doctor/Chennai/Annanagar/? [R=301,L] 
RewriteCond %{HTTP_HOST} ^(www\.)?mydomain.com [NC] 
RewriteCond %{REQUEST_URI} searchresult\.php 
RewriteCond %{QUERY_STRING} txtcity=Chennai 
RewriteRule .* doctor/Chennai/? [R=301,L] 
0

爲了使任何.htaccess工作,你需要做兩件事情。

首先要在<Directory>指令中匹配您的路徑AllowOverride的Apache配置文件中啓用它。例如:

<Directory /> 
    Options None 
    AllowOverride All 
    Order deny, allow 
    Deny from all 
</Directory> 

這將允許在「/」(根目錄)與在.htaccess文件中指定的東西覆蓋。這裏的complete specAllowOverride指令。

第二件事將放置在.htaccess任何有效的指令。

請記住,RewriteCond規則堆疊彼此,直到你把RewriteRule指令。這就是你將能夠制定更復雜的規則的方式。你會找到這個here不錯的指南。