I’ve traced into CI’s code, and here is what i found.
Under a normal Apache enviroment, CI will work fine with following settings in app/config/config.php
$config['uri_protocol'] = "AUTO";//or PATH_INFO which is no different
and when running to library/router.php, in _parse_routes() method, a normal url like “http://localhost/index.php/test” can be stored in $this->segments like
Array
(
[0] => test
)
This is the only working case.
But under Abyss server in FAST CGI mode, there is no “PATH_INFO”, so both “AUTO” and it cant work. if those are used i will end up with a default controller which is commonly the “Welcome” controllor. then i chose “REQUEST_URI” to go :
$config['uri_protocol'] = "REQUEST_URI";
then in the same _parse_routes() method of the same rounter.php file, url was differently stored in $this->segment as:
Array
(
[0] => index.php //a file name is added to this array
[1] => test
)
and the browser will throw me a 404 error. the test controllor wont be executed. The odd is it’s there on the harddisk
also if i use “REQUEST_URI” under Apache. it will show the same problem..
now i guess the problem must be somewhere around the process dealing with “REQUEST_URI” data.
