【问题标题】:Codeigniter default_controller routeCodeigniter default_controller 路由
【发布时间】:2013-08-09 11:21:27
【问题描述】:

在我的 codeigniter 项目中,我的所有路由都运行良好,除了 default_controller,它总是返回 404。我的路由示例:

$route['(:any)/(:any)/(:any)'] = 'home/$3'; // Region / language / page
$route['(:any)/(:any)'] = 'home/index'; // Region / language

$route['default_controller'] = "home/region_select";

所以当用户第一次访问该站点时,想法是转到 default_controller,在那里他选择一个区域。所有其他路线都有效。在“Home”控制器中,我有一个“region_select”功能。任何想法都非常感谢。

【问题讨论】:

  • application/controller/home/region_select.php 中有文件吗?这就是现在搜索的内容,看起来您希望默认控制器加载函数region_select,但这只会获取控制器并在其中加载index()

标签: codeigniter routing


【解决方案1】:

试试这个:

$route['default_controller'] = "home/region_select/";
$route['404_override'] = '';

【讨论】:

    【解决方案2】:

    试试这个

    $route['default_controller'] = "home";
    

    把region_select函数的内容放到home控制器的index函数中,看看会发生什么。

    也许它会起作用。

    如果您遇到任何问题,请告诉我。

    【讨论】:

    • 其实home/region_select是可以接受的。 CI 也尝试加载该函数。看看core/Route.phpline #310
    • @Hashem Qolami 你是对的。但有时如果它是对的,事情就不会起作用。
    【解决方案3】:

    好的,我必须向所有回答浪费时间的人道歉。我发现这个问题是我的“home”构造函数中的一个条件问题,它接受了一个 URI 段并测试了它的有效性,如果它无效则返回 404。当然,由于根没有 URI 段,它返回无效。我通过在测试其有效性之前检查 URI 段的存在来修复它。感谢大家的帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-16
      • 2011-11-21
      • 1970-01-01
      • 1970-01-01
      • 2010-11-20
      • 2011-07-08
      相关资源
      最近更新 更多