在 httpd.conf 中:
rewriterule ^questions/([0-9]+).* ...
它匹配/questions/1674/<textarea>
,但不匹配/questions/1674/<textarea><%2Ftextarea>
在 httpd.conf 中:
rewriterule ^questions/([0-9]+).* ...
它匹配/questions/1674/<textarea>
,但不匹配/questions/1674/<textarea><%2Ftextarea>
如果 URI 中有编码的正斜杠,Apache 会立即返回 404。错误日志将指出:
[info] [client 1.2.3.4] 在 URI (decoded='/question/1/') 中找到 %2f (encoded '/'),返回 404
要解决此问题,请将
<VirtualHost>
以下指令添加到您的 httpd.conf 根目录或部分:AllowEncodedSlashes On
然后你的重写将起作用。来自 Apache 手册的信息:
有关更多信息,请参阅:
http://httpd.apache.org/docs/2.0/mod/core.html#allowencodedslashes
http://blog.dynom.nl/archives/Apaches-fail-with-encoded-slashes_20090625_40.html
也许您需要规则上的 No Escape [NE] 标志?在此页面中搜索 noescape 。