问题
I have a code igniter project, and I wanted to try debugging it using Zend Studio. WHen I start debugging, I immediately run ino
"The URI you submitted has disallowed characters."
Does anyone have any idea?
回答1:
(Assuming you are using the latest version of CodeIgniter (CI) which is 1.7.0)
CI is pretty strict about what characters it allows in URLs. You can modify the regex that is used to filter URLs.
In system/config/config.php on line 126 is
$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-';
The comment above this line pretty much explains it all, and what sentinel value to use to over-ride this filter and permit all characters (i.e. turn off filtering completely).
On a side note, I found CI to be way too restrictive (for one it doesnt allow for GET requests and wants all interactions to happen via POST. I find this absolutely crazy and is akin to throwing the baby out with the bath water. Apparently, I am not the only one who thinks that CI is overly restrictive, the Kohana Project is a fork of CI + optimizations, namely pure php5 support (all OO), (CI is still PHP4 compatible at the expense of not being able to take advantage of PHP5 OO capabilities).
I prefer Kohana over CI, YMMV
http://kohanaphp.com/home
回答2:
If using an old version of CodeIgniter and PHP 5.4 you have to modify
if ( ! preg_match("|^[" . preg_quote($this->config->item('permitted_uri_chars')) . "]+$|i", $str)) {
into
if (FALSE === preg_match("|^[" . preg_quote($this->config->item('permitted_uri_chars')) . "]+$|i", $str)) {
in /system/libraries/URI.php
回答3:
in Expression engine you'll find this in /admin/expressionengine/config/config.php
$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\\-';
change to
$config['permitted_uri_chars'] = '';
but read the line comment before you do this.
Or don't use anything CI based.
来源:https://stackoverflow.com/questions/348491/the-uri-you-submitted-has-disallowed-characters