Я пытаюсь перенаправить 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";
Для любого соответствия ()
в patter вам нужно добавить соответствующие $1
или $2
, $3
.. на основе позиции этого ()
patter. т.е. для первого ()
его $ 1, для второго ()
его $2
и так далее.
Вам нужно установить свой контроллер по умолчанию на home
.
Решение 2. Использование перенаправления страницы .htaccess
RewriteEngine On RewriteCond %{REQUEST_URI} !^/api(.*)$ RewriteCond %{REQUEST_URI} !^/home/index$ RewriteRule ^.*$ /home/index [R=301,QSA,L]