Vikram's Web Archive


Since interestingness isn't a search option…

Fixed: “The URI you submitted has disallowed characters.” error CodeIgniter | DavidMichaelThompson

I started up a development project today after upgrading to snow leopard, and none of the codeigniter links worked. they all said “The URI you submitted has disallowed characters.” Why? This hadnt happened before, same project what changed?

Snow leopard upgraded my php dev environment to 5.3 from 5.2.6 And a few things have changed since then. Namely php bug #47229 “preg_quote should escape “-” (minus) as well” was fixed. (technically in 5.2.8) CodeIgniter checks uri for allowed characters to prevent some bad things. But the use preg_quote to convert the allowed list of character to something usable in a regular expression. Now the minus “-”, or I’d call it a dash (but I know there is a longer character for that) gets escaped in preg_quote with a backslash “\”. That cause the expression “a-z 0-9? to be converted to “a\-z 0\-9? which will not work in a regex.

Note we removed the preg_quote().  Now in your system/application/config/config.php file  look for line 126 (unless you’ve added a lot to you config will be around there somewhere)

Change the line

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


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

we’re now preparing our allowed character string in the config file and skipping preg_quote.  And that’s it.  Now your uri should work

via Fixed: “The URI you submitted has disallowed characters.” error CodeIgniter | DavidMichaelThompson.

Category: Blogging, Tech Tips


Comments are closed.




Speaker for the Dead
To Kill a Mockingbird
Leviathan Wakes
Caliban's War
Revelation Space
Ender's Game
On Basilisk Station
Old Man's War
Shards of Honour
The Warrior's Apprentice
The Fall of Hyperion
The Rise of Endymion