Ram*_*aul 3 php .htaccess redirect codeigniter url-routing
我正在尝试使用 Codeighiter 路由重定向 URL。我无法为以下内容编写路由。
如果 URL 附带,/api/some/some我想将其重定向到api/some/some,否则我想将 URL 重定向到/home/index。
即,如果任何 URL 开头,api/我不想更改该 URL,否则我想将其重定向到默认控制器home/index
我尝试的是映射 codeigniter URL 路由。
$route['api/(:any)'] = 'api/(:any)';
$route['(:any)'] = 'home/index/';
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用 codeigniter URL 路由技术,但我无法实现这一点。
这是在 codeigniter 级别重定向 URL 而不涉及服务器端重定向的方法吗?还是有更好的方法来做到这一点?
解决方案 1. 使用 CodeIgniter 路由
尝试这个在你的application/config/routes.php
$route ['api/(:any)'] = "api/$1";
$route ['(:any)'] = "home/index/$1";
$route ['default_controller'] = "home";
Run Code Online (Sandbox Code Playgroud)
对于模式中的任何匹配(),您需要根据该模式的位置添加相应的$1或$2, .. 。即第一个是 1 美元,第二个是1 美元,依此类推。$3()()()$2
您需要将默认控制器设置为home。
解决方案 2. 使用 .htaccess 页面重定向
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/api(.*)$
RewriteCond %{REQUEST_URI} !^/home/index$
RewriteRule ^.*$ /home/index [R=301,QSA,L]
Run Code Online (Sandbox Code Playgroud)