我正在尝试将所有路径重定向到一个主控制器。这是我的routes.php
$route['default_controller'] = "main";
$route['scaffolding_trigger'] = "";
//$route['(\w{2})/(.*)'] = '$2';
//$route['(\w{2})'] = $route['default_controller'];
$route['(en|ge)/(:any)'] = $route['default_controller']."/index/$1";
$route['(:any)'] = $route['default_controller']."/index/$1";
我需要通过每个链接传递语言ID(例如:http://site.com/en/hello-world)
这是我的主控制器:
class Main extends Controller
{
function __construct()
{
parent::Controller();
}
function index($page_type=false, $param=false)
{
die($page_type.' | '.$param.'| Aaa!');
}
}
我想检查是否存在预定义的文件类型(例如:http://site.com/en/archive/05-06-2010 - 这里预定义的类型将是归档)然后执行某些操作。如果没有,那么在数据库中搜索slug。如果没有找到,请转到404。
问题是我无法获取索引函数参数($ page_type,$ param)。谢谢你的帮助。
答案 0 :(得分:2)
如果您看到路由工作正常,请尝试使用$this->uri->segment(n)
代替?其中n是您从URI获得的细分数,即http://site.com/1/2/3/4/ ...
我已经看到使用你正在使用的方法的隐式参数的问题。
有关详细信息,请参阅CodeIgniter用户指南 - 此处的URI类:
http://codeigniter.com/user_guide/libraries/uri.html
祝你好运。