Php 如何在CodeIgniter URL中允许URI编码字符?

Php 如何在CodeIgniter URL中允许URI编码字符?,php,codeigniter,url,Php,Codeigniter,Url,我正在使用。我允许的URI字符设置如下: $config['permitted_uri_chars'] = 'a-z 0-9~%.:_()@&\-'; 当我键入类似的地址时,页面不会加载,并显示错误: 代码点火器:遇到错误您提交的URI 不允许的字符 我不明白%20(空格),但不允许使用感叹号 %21解析为在代码点火器中。所以codeigniter不支持这个,拜托!进入允许的uri配置文件: $config['permitted_uri_chars'] = 'a-z 0-9~%.:_(

我正在使用。我允许的URI字符设置如下:

$config['permitted_uri_chars'] = 'a-z 0-9~%.:_()@&\-';
当我键入类似的地址时,页面不会加载,并显示错误:

代码点火器:遇到错误您提交的URI 不允许的字符


我不明白<允许使用代码>%20(空格),但不允许使用感叹号

%21
解析为
在代码点火器中。所以codeigniter不支持这个,拜托!进入允许的uri配置文件:

$config['permitted_uri_chars'] = 'a-z 0-9~%.:_()@&\-!';

试着用这个逃避它,那应该有用

\\+

您在允许的字符列表中有感叹号吗?我认为浏览器将%21解释为!,所以当CodeIgniter解析它时,它看到的是“!”而不是“%21”@Goldentoa11我是否必须将所有可能的标点符号以其原始形式添加到列表中?我是否应该允许所有角色都不必写一个庞大的列表?此配置文件中的注释表示“除非您知道自己在做什么,否则不允许使用所有字符”。那么,如果我允许所有字符,会打开哪些安全漏洞呢?根据你的第一个问题,我想这就是你必须要做的。根据你的第二个问题,如果CI说不要这样做,我会按照它说的去做,除非你明白幕后发生了什么,而我不知道。根据你的第三个问题,我不知道会打开什么样的漏洞。url中的(+)如何?我尝试这样添加,它在url
$config['allowed_uri_chars']='a-z 0-9~%:;,^$-+'中给我不允许的字符应在CI 3中的何处添加上述行?