Codeigniter 3.1.0:只有默认路由有效

Posted

技术标签:

【中文标题】Codeigniter 3.1.0:只有默认路由有效【英文标题】:Codeigniter 3.1.0: Only default route is working 【发布时间】:2017-01-19 08:56:00 【问题描述】:

我将在我的问题开始前说我已经在各个方面搜索了我的问题的解决方案,包括但不限于 ***、YouTube 和 Google。

我的问题:只有我的默认路由在 Codeigniter 中有效。我的默认路由设置为加载 home.php 视图的名为 Home 的控制器。这很好用。我有另一个名为 Pages 的控制器,它现在只有一个方法,Contact,它指向同名的视图。

我的 routes.php 文件如下所示。

$route['default_controller'] = 'home/home';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;

// All custom routs go below this line.

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

如果我应该将默认路由更改为“页面/联系人”,我的联系人页面会显示。

我的设置如下:

Windows 10 XAMMP 5.6.12 PHP 5.6.12

任何帮助将不胜感激。

【问题讨论】:

应该是'home/index'; 我的控制器名为 home,方法名为 home(我知道多余,但它有效)。我的问题是名为contact的路线。 @stack-flo 你是否按照这里所说的类和文件命名方式codeigniter.com/user_guide/general/styleguide.html#file-naming 你试过 index.php http://localhost/project/index.php/contact 确保你已经设置了你的基本 url ***.com/documentation/codeigniter/3643/… 是的,我有。我知道我的样式是正确的原因是,如果我用“pages/contact”替换我的默认控制器,我的联系页面就会显示。但是,如果我把它放在联系路线中,它就不起作用了。 【参考方案1】:

默认控制器名称应该是这样的$route['default_controller'] = 'home'; 而不是你的$route['default_controller'] = 'home/home';

然后尝试网址 www.site.url/pages/contact 是否有效,如果有效,然后尝试 $route['contact'] = 'pages/contact';

您也可以使用this link 调试您的路线。

【讨论】:

以上是关于Codeigniter 3.1.0:只有默认路由有效的主要内容,如果未能解决你的问题,请参考以下文章

CodeIgniter路由在子目录中不起作用

Codeigniter - CMS 的最佳路由配置?

CodeIgniter 路由不起作用

路由不起作用codeigniter

如何创建不覆盖其他控制器路由的 Codeigniter 路由?

CodeIgniter 路由文件夹错误