Функция Codeigniter _remap
-
26-09-2019 - |
Вопрос
Пожалуйста, помогите, я хочу использовать первый сегмент URI в мой веб-сайт Codeigniter.
Как будто я открываю этот URL, они открывают мой профиль:http://www.facebook.com/buddyforever. илиhttp://www.myspace.com/zarpio.
Как я могу сделать это с Codeigniter? Я проверил _remap
Функция, но первый подходящий контроллер Как скрыть контроллер?
Решение
Вы можете сделать это, используя маршрутизацию URL из Codeigniter ...
Если вы хотите, чтобы ваш URL был http://www.mydomain.com/zarpio
и вы хотите, чтобы это обратиться к your_controller
, Затем сделайте следующее.
/config/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 CodeCigigniter