2011-11-08 67 views
1

我创建了一个新的路线为我的网站:CodeIgniter的URL路由 - SEO友好的URL

$路线[ 'default_controller'] = “欢迎”;

$ 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

您可以替换welcome/index/$1路线:

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

这基本上是说,如果一个URI,做以“管理员” 开始应该航线的欢迎/指数法和传递的内容索引方法。否则,请以admin为控制器处理正常路由。

+0

感谢您的答复和它的作品..但如果我想补充一个规则让我们还有什么好说的:如果一个URI不不是以“管理员”和“用户”开头,它应该路由到欢迎/索引方法..我会这样做吗? – scoohh

+0

只需将它添加到以管道字符分隔的路由中:'$ route ['^(?! admin | users)。*'] =“welcome/index/$ 1”;' - 您可以根据需要添加任意数量。 – swatkins

+0

工作!非常感谢.. – scoohh

0

打开的application/config/router.php,改变

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

$route['404_override'] = 'router/index'; 

您可以使用所有控制器的正常方式。

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

创建一个名为的控制器Router.php作为针对CodeIgniter构造的控制器。

指数方法内Router.php,查询相关海基会网址,做必要的行动。路由到未定义的控制器的所有请求将由路由器/索引方法处理。其他人将像往常一样重定向到相关控制器。

你可能想使用头码点说,相关的页面是不是404