Codeigniter _remap функция - PullRequest
       10

Codeigniter _remap функция

3 голосов
/ 01 сентября 2010

Пожалуйста, помогите, я хочу использовать первый сегмент URI на моем сайте CodeIgniter.

Как и когда я открываю эти URL, они открывают мой профиль: http://www.facebook.com/buddyforever или http://www.myspace.com/zarpio

Как я могу сделать это с CodeIgniter?Я проверил _remap функцию, но сначала приходит контроллер, как скрыть контроллер?

1 Ответ

9 голосов
/ 01 сентября 2010

Это можно сделать с помощью маршрутизации URL-адреса codeigniter ...

Если вы хотите, чтобы ваш URL был http://www.mydomain.com/zarpio, и вы хотите, чтобы он ссылался на your_controller, то сделайте следующее.

/ конфигурации / routes.php

$route['(.*)'] = "your_controller/$1"; // Now, `zarpio` will be passed to `your_controller`

Вы можете получить к нему доступ в вашем контроллере, как это ...

$my_name = $this->uri->rsegment(2);

Однако я не предлагаю такой способ настройки URL. Лучше было бы ...

$route['users/(.*)'] = "your_controller/$1";

Таким образом, вы просто переименовываете имя своего контроллера your_controller в users.

Если вы хотите получить доступ к профилю пользователя, вы можете сделать это следующим образом ...

$route['users/profile/(.*)'] = "another_controller/method/$1";
$route['users/(.*)'] = "your_controller/$1";

Рассмотрим порядок маршрутизации. Поскольку вы написали users/(.*) в своем маршруте, он будет соответствовать users/zarpio, а также users/profile/zarpio и перенаправит их обоих на your_controller/$1, что в случае профиля даст вам ошибку 404 page not found. Вот почему вам нужно написать users/profile/(.*) перед users/(.*) в вашей конфигурации маршрутизации.

Дополнительная информация в документации класса URI кодового указателя

...