从codeigniter中的每个url中删除Controller

时间:2016-09-13 10:45:46

标签: php codeigniter routing

我到处搜索但我找不到合适的结果。我想从网站的每个网址中删除controller_name。我的codeigniter安装在域的子文件夹中。

例如:

www.site_name.com/subfolder/controller_name/any_method_name

我只有一个控制器可以调用所有方法。

我了解到我必须对路线进行一些更改,但我认为这仅适用于一个网址。所以,如何删除每个网址。

3 个答案:

答案 0 :(得分:0)

不确定这是否有效,但您可以尝试在application\config\routes.php中添加此内容:

$route['([a-z]+)'] = 'controller_name/$1';

文档https://www.codeigniter.com/userguide3/general/routing.html#regular-expressions

答案 1 :(得分:0)

在这里,我正在回答我自己的问题。我通过以下解决方案解决了这个问题。

假设我的控制器名称是用户,那么答案是:

$route['^(:any)(/:any)?$'] = "users/$0";

这将从网站的每个网址中删除控制器名称。

答案 2 :(得分:-1)

Codeigniter支持两种类型的路由规则

1)的通配符

2)正则表达式

我更喜欢通配符

在路线中放置这个

$ route ['login /(:any)'] =“v1 / login”;

以“login”作为第一段的URL,第二段中的任何内容都将重新映射到“v1”类和“login”方法。

表示您更改www.abc.com/login而非www.abc.com/v1/login

检查一次在codeigniter中路由https://www.codeigniter.com/userguide3/general/routing.html .......