Codeigniter - URI 不允许的字符

Codeigniter - URI Disallowed characters

我已经看到其他几个与此类似的问题,但找不到解决我的具体问题的方法。

我收到错误 The URI you submitted has disallowed characters. 当我发送以下请求时:

 http://myrul/login/createNewPassword/reset_token/pwd70xkainz500d57311rli/username/contact%40email.com

现在我已经确定 username 中的 % 是触发错误的原因,但我的配置文件中允许这样做。

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

虽然这应该允许 % 在 url 中被允许。如果我将配置设置为

$config['permitted_uri_chars'] = '';

工作正常。配置字符串不正确?或者是否有我应该使用的字符串的另一种变体?

contact%40email.com 实际上是 contact@email.com,但是 urlencoded.

因此,您发送的不允许的字符是 @,而不是 %

如果您在 permitted_uri_chars 中添加“@”,应该没问题。

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