2015-11-26 43 views
1

是否可以设置CI,以便在进行URI匹配时遵循调用匹配类方法的标准方法,但是当没有匹配类时调用默认的类而不是?如何在未找到类时加载默认控制器

例如,可以说我有以下控制器定义:

controllers/main.php 
controllers/page1.php 
  • 当URI是localhost/Main然后controllers/main.php类 匹配(标准CI)

  • 当URI是localhost/然后controllers/main.php类 匹配(假设默认控制器定义在 config/routes.php

  • 当URI是localhost/Page1controllers/page1.php
    类匹配(标准CI)

  • 当URI是localhost/Undefinedpage然后我想要的
    控制器/待匹配main.php。

注意我无法在config/routes中明确列出,因为我不知道实际文字是什么。

我也不想做通配符匹配,因为它会阻止CI的正常运行。我也不想为每个控制器设置一条路线 - 这很愚蠢。

404覆盖已接近我想要的操作,但404覆盖并不妨碍发出404 - 因此解决方案也无效。

感谢您的建议。

+0

什么是你的CI版本? –

回答

0

config/routes.php

$route['404_override'] = 'controllers/main'; 

当过用户访问某些其他URL,CI将ditect,由于404和重定向到上述控制器

+0

“这不会影响到show_404()函数,它会继续加载默认的error_404.php”? – ChronoFish

+0

你会在'404_override'中给出什么值,它会加载 –

相关问题