Intereting Posts
резервное копирование таблиц mysql с php Как получить адрес электронной почты при аутентификации пользователя с помощью Google Oauth2 и people.me Запрос SOAP в PHP с CURL Как выполнить запрос на соединение с помощью конструктора запросов Symfony и Doctrine Query Builder Как сделать активную панель навигации в php? Вызов функции-члена функции () для не-объекта при вставке данных с использованием PHP mySQL simpleHTMLDOM Как установить первый день недели в понедельник при использовании Week (Date) в PHP / MySQL? Отдельное здание от развертывания с помощью Хадсона CURL ERROR: отказ Recv: сброс соединения с помощью сверстника – PHP Curl Может ли кто-нибудь объяснить мне функцию pack () в PHP? Как использовать цикл PHP while, чтобы преобразовать эти ссылки p-тегов в видеоролики youtube? алгоритм разделения фразы в PHP Комбинация поиска полей с использованием PHP и MYSQL Как обновить сеанс в комету? yii2 получить имя вместо id

Перенаправление и маршрутизация URL-адреса Codeigniter

Я пытаюсь перенаправить URL-адреса с маршрутизацией Codeighiter. Я не мог написать маршрутизацию для следующего.

Если URL-адрес поставляется с /api/some/some я хочу перенаправить его в api/some/some , в противном случае я хочу перенаправить URL-адрес в /home/index .

т.е. если какой-либо URL-адрес начинается с api/ i, вы не хотите изменять этот URL-адрес другим, я хочу перенаправить его на стандартный контроллер home/index

Я попытался сопоставить маршрутизацию URL-кода.

 $route['api/(:any)'] = 'api/(:any)'; $route['(:any)'] = 'home/index/'; 

Я пытаюсь использовать технологию маршрутизации URL-кода, но я не могу этого добиться.

Является ли это способом перенаправления URL-адресов на уровне codeigniter без трогательного перенаправления на стороне сервера или есть ли лучший подход к этому?

Решение 1. Использование маршрутизации CodeIgniter

попробуйте это в своем application/config/routes.php

 $route ['api/(:any)'] = "api/$1"; $route ['(:any)'] = "home/index/$1"; $route ['default_controller'] = "home"; 
  1. Для любого соответствия () в patter вам нужно добавить соответствующие $1 или $2 , $3 .. на основе позиции этого () patter. т.е. для первого () его $ 1, для второго () его $2 и так далее.

  2. Вам нужно установить свой контроллер по умолчанию на home .

Решение 2. Использование перенаправления страницы .htaccess

 RewriteEngine On RewriteCond %{REQUEST_URI} !^/api(.*)$ RewriteCond %{REQUEST_URI} !^/home/index$ RewriteRule ^.*$ /home/index [R=301,QSA,L]