我用了很多代码来重定向我的子文件夹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
指令。这就是你如何能够制定更复杂的规则。你可以在这里找到一个很好的指南。