【问题标题】:How to route everything to default controller in codeigniter?如何将所有内容路由到codeigniter中的默认控制器?
【发布时间】:2012-02-19 14:07:47
【问题描述】:

我有一个使用 codeigniter 2 构建的网站 http://example.com。默认控制器是

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

如果我尝试访问 pageX,链接应该是 http://example.com/en/domain/view/pageX。
我想允许网站的访问者通过键​​入

访问此页面
http://example.com/pageX

我试过了

$route['(:any)'] = "view/$1"; ==> it gives 404 Page Not Found
$route['(:any)'] = "domain/view/$1"; ==> it redirects to homepage with link shown as http://example.com/en/pageX
$route['(:any)'] = "en/domain/view/$1"; ==> it gives 404 Page Not Found

但没有一个对我有用。

编辑

通过添加:

$route['(:any)'] = 'domain/view/$1';  
$route['en/blog']   =  'domain/view/blog';

example.com/blog 可以正常工作 但我需要它更笼统地涵盖除管理页面以外的所有页面,如下所示:

$route['(:any)'] = 'domain/view/$1';  
$route['^(?!admin).*']   =  'domain/view/$o';
//The above routes will show the home page only for whatever i try!!

我必须添加到routes.php 的路线是什么?

【问题讨论】:

    标签: codeigniter routes


    【解决方案1】:

    $route['default_controller'] 在不存在 URI 时被调用。使用$route['404_override'] 表示完整的“全部”。

    要使您的路由模式正常工作,请尝试以下操作:

    $route['[^/]*/(.*)'] = 'en/domain/view/$1';
    

    【讨论】:

    【解决方案2】:

    我通过这样做解决了我的问题

    $route['^[a-z]+$'] = '域/视图/$1'; $route['([a-z]{2})/([a-z_]{1,50})'] = 'domain/view/$2';

    【讨论】:

      猜你喜欢
      • 2013-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多