我搜索了所有帖子,我发现他们遇到了同样的错误。大多数评论和反馈已成功修复,但当我做我的时,它确实不起作用:/请帮帮我:
我已经更改了system/application/config/config.php
文件:
$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-';
到
$config['permitted_uri_chars'] = 'a-z 0-9~%\.\:_\-';
和
在此文件夹system/libraries/URI.php
文件中:
if ( ! preg_match("|^[".str_replace(array('\\-', '\-'), '-', preg_quote($this->config->item('permitted_uri_chars'), '-'))."]+$|i", $str))
到
if ( ! preg_match("|^[".($this->config->item('permitted_uri_chars'))."]+$|i", rawurlencode($str)))
仍然是“您提交的URI已禁止使用字符”。存在。
答案 0 :(得分:3)
这是我为支持Facebook的应用程序提供的内容
$config['permitted_uri_chars'] = '+=a-z 0-9?~%.,:_\-';
我见过有成功的人也支持下面的内容,但是我的仍然设置为FALSE
$config['enable_query_strings'] = TRUE;
答案 1 :(得分:3)
我今天遇到类似的问题,当我们升级到PHP 5.3时,事实证明解决方案是从_filter_uri()
中的URI.php
更新此行
if ( ! preg_match("|^[".preg_quote($this->config->item('permitted_uri_chars'))."]+$|i", $str))
使用CodeIgniter repository version中的这一新行:
if ( ! preg_match('|^['.str_replace(array('\\-', '\-'), '-', preg_quote($this->config->item('permitted_uri_chars'), '-')).']+$|i', $str))