无法匹配mod_rewrite中的%2F

LHM*_*ies 7 mod-rewrite apache2 url-rewriting

我有一组重写规则(在.htaccess中),如下所示:

RewriteRule ^list/vendor/(.*)$ list.php?vendor=$1
RewriteRule ^list/product/(.*)$ list.php?product=$1
RewriteRule ^list/(.*)$ list.php?search=$1
Run Code Online (Sandbox Code Playgroud)

(我不认为前两个与我的问题有关).

当我输入myserver.com/list/foo%2Cbar或甚至myserver.com/list/foo/bar,我得到我期望的结果:list.php被调用with foo,barfoo/barin $_GET['search'].

但如果我输入myserver.com/list/foo%2Fbar,似乎规则不匹配!我得到了404错误.这可以发生什么?Apache 2.2.14,如果重要的话.

(我在Firefox和Chrome中尝试过相同的结果 - 但当然可能是浏览器正在运行).

LHM*_*ies 15

呸,我发现它... Apache选项AllowEncodedSlashes,不能为每个目录或.htaccess设置,默认为Off.

如果我无法让托管人员在我的虚拟服务器中打开它,那么构建一个解决方法的时间.