Маршрутизация URI в Codigniter без Htaccess - PullRequest
0 голосов
/ 10 января 2012

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

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";

В чем проблема в моем коде?

Как я могу это сделать?

1 Ответ

1 голос
/ 10 января 2012

Вы не можете сделать это без использования файла .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';

...