在我的网站上,我保存了一些用户搜索,但如果他们输入带有特殊字符的字符串,那么我的mod_rewrite规则会给出400 Bad Request。
我该如何解决?
RewriteRule ^search/([^/\.]*)/?$ /index.php?page=search&string=$1 [NC,L]
例如,如果保存的搜索是:
/search/%spong%US%/
由于
答案 0 :(得分:1)
您的问题是RewriteRule在服务器解码后查看URL。您有两种选择:
1)在重写中从%{THE_REQUEST}捕获搜索字符串,该字符串仍将采用编码形式。
2)使用[B]标志来逃避替换中的反向引用。