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需要进行哪些修改才能允许读取.
个字符?
答案 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。