Htaccess不能为我的域名子文件夹单独工作


Htaccess not working for my domain sub folders alone

我用了很多代码来重定向我的子文件夹url,但不工作。

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]

假设您只是试图将第一个URL重定向到第二个列出的URL,这是在我的服务器上工作。

需要注意的一点是,它们列出的顺序确实有区别。最具体的需要首先列出,这样所有的文本区域内的文本城市必须首先列出我下面的例子。

祝你好运,让我知道你的结果。

蒂姆

Tim@mpact-media.com

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]

为了使任何.htaccess工作,您需要做两件事。

第一件事是在Apache配置文件中启用它,在与您的路径匹配的<Directory>指令中,AllowOverride。例如:

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

这将允许在"/"(webroot)上覆盖.htaccess文件中指定的内容。以下是AllowOverride指令的完整规范:

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

请记住,RewriteCond规则相互叠加,直到您放置RewriteRule指令。这就是你如何能够制定更复杂的规则。你可以在这里找到一个很好的指南。