htaccess重写问题

时间:2010-07-13 22:13:10

标签: .htaccess

RewriteRule ^a/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([0-9]+)$
    /var/www/vhosts/mydomin.com/httpdocs/search.php?searchtext=$1&locationtext=$2&page=$3
    [QSA]

我想通过http://www.mydomain.com/searchtext=jobs&locationtext=A.G.sBosRoad&page=1, 但我收到了一个错误。我猜这个错误是由.字符引起的。 htaccess需要进行哪些修改才能允许读取.个字符?

2 个答案:

答案 0 :(得分:2)

正如你所说,你的locpart正则表达式不接受点。将字符类更改为包含\.

RewriteRule ^a/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_\.-]+)/([0-9]+)$ /var/www/vhosts/mydomin.com/httpdocs/search.php?searchtext=$1&locationtext=$2&page=$3 [QSA]

或者更一般地说,如果您的脚本没有问题:

RewriteRule ^a/([^/]*)/([^/]*)/(\d+)$ /var/www/vhosts/mydomin.com/httpdocs/search.php?searchtext=$1&locationtext=$2&page=$3 [QSA]

这将接受任何不带斜杠的字符串文本和searchtext,甚至是空字符串,仍然会重定向到你的搜索脚本。

答案 1 :(得分:-1)

.htcaccess只接受以适当扩展名结尾的文件,例如.html或.php。