我如何使用mod_rewrite接受特殊字符?

时间:2013-08-30 10:25:10

标签: php .htaccess mod-rewrite

在我的网站上,我保存了一些用户搜索,但如果他们输入带有特殊字符的字符串,那么我的mod_rewrite规则会给出400 Bad Request。

我该如何解决?

RewriteRule ^search/([^/\.]*)/?$ /index.php?page=search&string=$1 [NC,L]

例如,如果保存的搜索是:

/search/%spong%US%/

由于

1 个答案:

答案 0 :(得分:1)

您的问题是RewriteRule在服务器解码后查看URL。您有两种选择:

1)在重写中从%{THE_REQUEST}捕获搜索字符串,该字符串仍将采用编码形式。

2)使用[B]标志来逃避替换中的反向引用。