默认情况下,CodeIgniter 会阻止 %27 (') 出现在 URL 中。结果,我注释掉了整个 $config['permitted_uri_chars'] 指令。但是,当我现在将 URL 的一部分解析为包含 %27 或任何其他 URL 编码部分的方法参数时,CodeIgniter 将其转换为纯 ?,然后我什至可以在其上运行 rawurledcode()。我怎样才能阻止它这样做?我们正在使用 CI v1.7.x。
这是一些简单的代码来显示它:
在“程序”控制器中:
function test($parameter)
{
echo $parameter;
}
然后我们加载http://example.com/program/test/o%27clock,我们得到:
o?clock
我期望o'clock
或者至少o%27clock
我可以用 rawurldecode() 来获得o'clock
.
更新:不幸的是,我错了。它不是由 CodeIgniter 引起的。相反,suhosin 的存在进行了替代。