URI маршрутизиране в Codigniter без Htaccess

Това е моят URL адрес на сайта:

xxx.myserver.net

В този сайт искам да маршрутизирам контролера, което означава, че когато свържа URL този тип:

xxx.myserver.net/aaaaa

Искам да го пренасоча към контролера, който желая, което означава, че искам да пренасоча към:

xxx.myserver.net/index.php/controller-name/funation-name/aaaaa

Искам да направя това, без да използвам метода htaccess, само като използвам метода за маршрутизиране на uri на codeigniter.

Когато се опитам да направя това, получавам съобщение за грешка:

Not Found

The requested URL  not found on this server.

Това е кодът, който дадох в страницата routes.php:

$route['/(:any)'] = "xxx.myserver.net/index.php/controller-name/funation-name/$1";

Какъв е проблемът в моя код?

Как мога да направя това?


person Kichu    schedule 10.01.2012    source източник
comment
Не можете да направите това без .htaccess, вие обърквате конфигурационния файл на маршрута с това, което прави .htaccess. Конфигурационният файл на маршрута насочва само към КОНТРОЛЕРИТЕ, а не към действителните файлове на вашия сървър (което прави htaccess).   -  person Jakub    schedule 12.01.2012
comment
искаш да кажеш, че конфигурационният файл на маршрута е само за контролери за маршрутизиране, а не за път на сървъра?   -  person Kichu    schedule 12.01.2012
comment
правилно, насочвате параметри само към контролери, а не към файлове или нещо подобно.   -  person Jakub    schedule 12.01.2012


Отговори (1)


Не можете да направите това без да използвате .htaccess файл. От високо ниво целта на файла .htaccess е да насочва всички заявки към вашия домейн през предния контролер на CodeIgniter, файла index.php във вашата основна директория. Ето документацията, която обяснява как работи създаването на файла .htaccess и премахването на index.php от URL адреса. За да перифразираме, той посочва как произволните заявки се третират като заявки за файла index.php.

Когато направите заявка до xxx.myserver.net/aaaaa, уеб сървърът търси ресурса aaaaa във вашия корен. Заявката дори не се обработва от CodeIgniter. Тъй като нямате ресурс със заглавие aaaaa, получавате грешка.

За да използвате CodeIgniter без .htaccess файл, ще трябва да прехвърлите всяка заявка през index.php. Например:

xxx.myserver.net/index.php/aaaaa

След това можете да създадете своя маршрут по следния начин:

$route['(:any)'] = 'controller_name/function_name/$1';

person birderic    schedule 10.01.2012
comment
зададох така $route['(:any)'] = 'controller_name/function_name/$1'; И взех горното, получих тази грешка 404 Страницата не е намерена Страницата, която поискахте, не беше намерена. - person Kichu; 11.01.2012