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

时间:2013-03-05 18:17:43

标签: php .htaccess

我使用了很多代码来重定向我的子文件夹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]

2 个答案:

答案 0 :(得分:0)

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

有一点需要注意的是,它们列出的顺序确实有所不同。最具体的需要首先列出,这样txt城市中的所有txtarea必须首先按照下面的例子列出。

祝你好运,让我知道它是如何为你效力的。

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]

答案 1 :(得分:0)

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

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

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

这将允许使用.htaccess文件中指定的内容覆盖“/”(webroot)。这是AllowOverride指令的complete spec

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

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