mod_rewrite NE标志 - 什么时候对URL中的特殊字符进行编码有帮助?

Vah*_*deh 13 .htaccess mod-rewrite url-rewriting url-encoding

我一直在看[NE]mod_rewrite 中的(noescape)标志.经过一番思考我无法弄清楚的情况时,我会希望使用该标志.意思是,几乎每一个都保持启用标志似乎最有帮助RewriteRule.在某些情况下,不调用此标志会导致我出现问题.

我处理的大多数规则都是HTTP重定向([R]),而不是通过.

有人会对mod_rewrite编码URL有什么帮助吗?

启用此标志通常是好的做法,还是使用允许mod_rewrite转义这些特殊字符的默认行为?为什么?

Pet*_*tai 1

[NE]当您将请求 URL 添加为授权签名的一部分时,该标志非常有用。

我刚刚遇到一个错误,授权在 .htaccess 关闭时有效,但在 .htaccess 打开时无效。事实证明,原因是重定向对最终出现在 php$_GET参数中的项目进行了 url 编码。为了解决这个bug我改变了:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*[^/0-9])$ $1/ [R=301,L]
Run Code Online (Sandbox Code Playgroud)

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*[^/0-9])$ $1/ [NE,R=301,L]
Run Code Online (Sandbox Code Playgroud)

(授权签名由很多东西组成,其中之一就是请求url)

  • *“有人能解释一下‘什么时候让 mod_rewrite 对 URL 进行编码有帮助吗?’”* (2认同)