Перенаправить контроллер в основной индекс - PullRequest
0 голосов
/ 18 августа 2011

У меня есть контроллер, который я использую для перенаправлений, который называется redirect.php. Этот контроллер имеет один _remap($method).

Этот метод _remap работает путем присвоения любой строки URI после контроллера перенаправления обратно в контроллер. Например, запрос к http://mysite.com/redirect/sometext отправит запрос обратно к http://mysite.com/redirect

Это поведение, которое я хочу, но как бы я это сделал на index level, поэтому вместо того, чтобы набирать http://mysite.com/redirect/sometext, я мог бы набрать http://mysite.com/sometext и получить такое же поведение. Это сложно, потому что CodeIgniter использует Index.php, поэтому я не могу разместить здесь метод _remap. Поскольку я не очень хорошо знаком с маршрутами и .htaccess, любая помощь будет признательна, чтобы получить эту работу.

1 Ответ

1 голос
/ 18 августа 2011

Если вы хотите пойти по маршруту, вы должны составить маршрут для каждого имеющегося у вас контроллера, иначе у контроллера somepage будет маршрут $route["somepage"] = "somepage";, затем после всех из них (в самом низу маршрутов) , Маршруты работают путем нахождения первого подходящего регулярного выражения и последующего его использования, поэтому, чтобы все ваши контроллеры работали и перехватывали только обычный текст, вам необходимо каждое из этих правил.
Затем мы создаем правило «по умолчанию», оно будет работать для всего, что не попало в предыдущую проверку маршрута. Что-то вроде $route["(.*)"] = 'redirect/index/$1';. Это перенаправит вас к контроллеру redirect, причем первый сегмент URI (сегмент 3) будет sometext в вашем примере выше. Обратите внимание, что это также будет работать для 404 страниц, оно будет работать для всего , которое не определено в вышеприведенных правилах.

Я не вижу в этом смысла, если бы я был на вашем месте, я бы просто отправил его на контроллер перенаправления, это сделало бы вещи немного менее грязными, но, конечно, есть способ, как показано выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...