将编码的字符添加到网址会破坏htaccess

时间:2010-08-02 13:29:50

标签: url .htaccess character-encoding encode

这是我的代码:

RewriteEngine on
RewriteRule page/(.*) index.php?url=$1 [NC]

当我访问页面/ http://google.com/ =工作正常时 当我访问页面/ http%3A%2F%2Fgoogle.com%2F =服务器报告404

Martti Laine

2 个答案:

答案 0 :(得分:2)

我相信你需要Bescape)标志:

RewriteRule page/(.*) index.php?url=$1 [NC,B]

在将其添加到替换字符串之前,它将转义后引用($ 1)。

答案 1 :(得分:0)

如果您在请求中编码了斜杠,但未将AllowEncodedSlashes设置为on,则Apache会返回(有点不直观)404。要确认是这种情况,请检查错误日志,其中可能包含如下条目:

  

在URI中找到%2f(编码为'/')   (解码= '/页/ http://google.com/'),   返回404