Codeigniter URL 重定向和路由

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 而不涉及服务器端重定向的方法吗?还是有更好的方法来做到这一点?

Rav*_*a ツ 5

解决方案 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. 对于模式中的任何匹配(),您需要根据该模式的位置添加相应的$1$2, .. 。即第一个是 1 美元,第二个是1 美元,依此类推。$3()()()$2

  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)