CodeIgniter URL路由 - SEO友好的URL

时间:2011-11-08 13:19:16

标签: codeigniter routing seo

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

$ 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是:

http://mydomain.com/admin

我将添加什么路由文件以忽略管理员内的/ admin和其他控制器?

2 个答案:

答案 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.