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

Php 如何使用mod_rewrite接受特殊字符?,php,.htaccess,mod-rewrite,Php,.htaccess,Mod Rewrite,在我的网站上,我保存了一些用户搜索,但是如果他们输入带有特殊字符的字符串,那么我的mod_重写规则会给出一个400错误的请求 我怎样才能修好它 RewriteRule ^search/([^/\.]*)/?$ /index.php?page=search&string=$1 [NC,L] 例如,如果保存的搜索是: /search/%spong%US%/ 谢谢您的问题是,RewriteRule正在服务器解码后查看URL。您有两个选择: 1) 在rewritecond中从%{the_RE

在我的网站上,我保存了一些用户搜索,但是如果他们输入带有特殊字符的字符串,那么我的mod_重写规则会给出一个400错误的请求

我怎样才能修好它

RewriteRule ^search/([^/\.]*)/?$ /index.php?page=search&string=$1 [NC,L]
例如,如果保存的搜索是:

/search/%spong%US%/

谢谢

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

1) 在rewritecond中从%{the_REQUEST}捕获搜索字符串,该字符串仍将是编码形式


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

%
应在URL中作为
%25
输入。