CodeIgniter URL路由-搜索引擎优化友好URL

CodeIgniter URL路由-搜索引擎优化友好URL,codeigniter,routing,seo,Codeigniter,Routing,Seo,我已为我的站点创建了一条新路线: $route['default_controller']=“欢迎” $route['(:any)]=“欢迎/索引/$1” $route['404_override']='' 当URL如下时,这在我的站点中运行良好: *我的控制器就是welcome.php 但是 我还有一个管理员控制器,管理员的URL是: 我将向路由文件中添加什么来忽略/admin和admin中的其他控制器?您可以将欢迎/index/$1路由替换为: $route['^(?!admin).*

我已为我的站点创建了一条新路线:

$route['default_controller']=“欢迎”

$route['(:any)]=“欢迎/索引/$1”

$route['404_override']=''

当URL如下时,这在我的站点中运行良好:

*我的控制器就是welcome.php

但是

我还有一个管理员控制器,管理员的URL是:


我将向路由文件中添加什么来忽略/admin和admin中的其他控制器?

您可以将
欢迎/index/$1
路由替换为:

$route['^(?!admin).*'] = "welcome/index/$1";

这基本上是说,如果一个URI不以“admin”开头,那么它应该路由到welcome/index方法,并将内容传递给index方法。否则,使用管理员作为控制器处理正常路由。

打开应用程序/config/router.php并更改

$route['404_override'] = '';

您可以按常规方式使用所有控制器

当您尝试使用不存在的控制器时,应将其路由到404控制器

创建一个名为Router.php的控制器,作为CodeIgniter的结构化控制器

Router.php中的index方法中,查询相关sef url并执行所需操作。路由到未定义控制器的所有请求将通过路由器/索引方法处理。其他将像往常一样重定向到相关控制器


您可能希望使用标题代码指出相关页面不是404

谢谢你的回复,它很有效!。。但是如果我想再添加一条规则,比如说:如果URI不以“admin”和“users”开头,它应该路由到欢迎/索引方法。我该怎么做呢?只需将它添加到以管道字符分隔的路由中:
$route['^(?!admin | users)。*']=“welcome/index/$1”--您可以根据需要添加任意数量的代码。
$route['404_override'] = 'router/index';