Маршрутизация URI в Codigniter без Htaccess

Это мой адрес сайта:

xxx.myserver.net

На этом сайте я хочу маршрутизировать контроллер, что означает, что когда я связываю URL-адрес этого типа:

xxx.myserver.net/aaaaa

Я хочу перенаправить его в контроллер, который я хотел, это означает, что я хочу перенаправить в:

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

Я хочу сделать это без использования метода htaccess, только с помощью метода маршрутизации codeigniter uri.

Когда я пытаюсь сделать это, я получаю сообщение об ошибке:

Not Found

The requested URL  not found on this server.

Это код, который я дал на странице route.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