這個問題是mod_encoding已經先一步處理了url ,而PHP又解了一次
例如
x.php?s=%252B%2F%2B%2F
那麼$_GET['s']得到的是
+/ /
urlencode("+") = %2B
urlencode("%2B") = %252B
所以,這個url被decode了兩次
第一次是
urldecode( "%252B%2F%2B%2F") = %2B/+/
urldecode( "%2B/+/") = +/ /
解決辦法
修改httpd.conf 將
<IfModule mod_encoding.c>
EncodingEngine on
這一段配置移到需要的vitualHost裡去,這個不能和php腳本並存。