Codeigniter强制所有流量到特定的控制器和方法

时间:2015-05-20 01:05:24

标签: php codeigniter redirect routes

我很抱歉,如果这是重复的,但在搜索互联网的几个小时后,我正在制作一个空白...

我正在尝试删除强制所有流量到特定的控制器和方法,所以我的URL将读取一件事但是另一件事。最终结果将是这样的:

>>> lists = {}
>>> while 1:
...     newlist = input("Name of new list (leave blank to stop)? ")
...     if newlist:
...             lists[newlist] = []
...             while 1:
...                     newitem = input("Next item? ")
...                     if newitem:
...                             lists[newlist].append(newitem)
...                     else:
...                             break
...     else:
...             break
...
Name of new list (leave blank to stop)? groceries
Next item? apples
Next item? bananas
Next item?
Name of new list (leave blank to stop)? books
Next item? the bible
Next item? harry potter
Next item?
Name of new list (leave blank to stop)?
>>> lists
{'groceries': ['apples', 'bananas'], 'books': ['the bible', 'harry potter']}

会变成这样:

https://www.domain.com/home/pages/about

我尝试过使用这些路线无济于事。不要误会我的意思,我有默认设置使用该路由,主页加载得很好,但子页面不遵循它并给出404错误。 默认路线:

https://www.domain.com/about

我尝试过的众多变化之一:

$route['default_controller'] = 'home/pages';

这可以通过路线吗?

2 个答案:

答案 0 :(得分:3)

我发帖是因为在我提交这篇文章之前30秒我在另一页(codeigniter手册)上读了一些我以前错过的内容......

对此的修复是添加如下自定义路线:

$route['home']['pages'] = 'home/pages';

与默认路由一起强制所有页面使用home控制器和pages方法。它提供了漂亮的漂亮网址。

答案 1 :(得分:0)

例如,如果您还想覆盖404,那么您是基于DB的系统,其URL中带有基本子段:

$route['default_controller'] = 'home/pages';
$route['404_override'] = 'home/pages';
$route['(:any)'] = 'home/pages';