我为我的网站创建了一条新路线:
$ route ['default_controller'] =“welcome”;
$ route ['(:any)'] =“welcome / index / $ 1”;
$ route ['404_override'] ='';
当URL如下所示,这在我的网站中正常工作:
http://mydomain.com/first-article
http://mydomain.com/second-article
*我的控制器只是welcome.php
但
我还有一个管理员控制器,管理员的URL是:
我将添加什么路由文件以忽略管理员内的/ admin和其他控制器?
答案 0 :(得分:3)
您可以将welcome/index/$1
路线替换为:
$route['^(?!admin).*'] = "welcome/index/$1";
这基本上说,如果不以“admin”开头的URI应该路由到welcome / index方法并将内容传递给index方法。否则,使用admin作为控制器处理正常路由。
答案 1 :(得分:0)
打开 application / config / router.php 并更改
$route['404_override'] = '';
到
$route['404_override'] = 'router/index';
您可以将所有控制器用作正常方式。
当您尝试使用不存在的控制器时,应将其路由到404控制器。
创建名为 Router.php 的控制器作为CodeIgniter的控制器。
在 Router.php 中的索引方法中,查询相关的sef网址并执行必要的操作。路由到未定义控制器的所有请求都将由路由器/索引方法处理。其他人将像往常一样被重定向到相关的控制器。
您可能希望使用标题代码指出相关页面不是404.