4

我搜索了所有帖子,发现他们遇到了同样的错误。大多数评论和反馈都已成功修复,但是当我这样做时,它真的不起作用:/请帮帮我:(

我已经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 包含不允许的字符”。存在。

4

2 回答 2

3

我今天升级到 PHP 5.3 时遇到了类似的问题,结果发现解决方案是_filter_uri()URI.php

if ( ! preg_match("|^[".preg_quote($this->config->item('permitted_uri_chars'))."]+$|i", $str))

使用CodeIgniter 存储库版本中的这一新行:

if ( ! preg_match('|^['.str_replace(array('\\-', '\-'), '-', preg_quote($this->config->item('permitted_uri_chars'), '-')).']+$|i', $str))
于 2013-06-18T11:21:39.633 回答
3

这是我为启用 facebook 的应用程序所拥有的

$config['permitted_uri_chars'] = '+=a-z 0-9?~%.,:_\-';

我见过成功的人也启用了以下功能,但我的仍然设置为 FALSE

$config['enable_query_strings'] = TRUE;
于 2012-12-11T02:29:50.640 回答