CodeIgniter URI 路由(动态,多语言)

Posted

技术标签:

【中文标题】CodeIgniter URI 路由(动态,多语言)【英文标题】:CodeIgniter URI routing (dynamic, multilingual) 【发布时间】:2011-02-16 10:19:17 【问题描述】:

我正在尝试将所有路由重定向到一个主控制器。这是我的routes.php

$route['default_controller'] = "main";
$route['scaffolding_trigger'] = "";

//$route['(\w2)/(.*)'] = '$2';
//$route['(\w2)'] = $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)。感谢您的帮助。

【问题讨论】:

【参考方案1】:

如果您可以看到路由工作正常,请尝试改用$this->uri->segment(n)?其中 n 是您从 URI 获得的段的编号,即http://site.com/1/2/3/4/...

我发现使用像您正在使用的方法的隐式参数时出现问题。

有关更多信息,请参阅 CodeIgniter 用户指南 - 此处的 URI 类:

http://codeigniter.com/user_guide/libraries/uri.html

祝你好运。

【讨论】:

以上是关于CodeIgniter URI 路由(动态,多语言)的主要内容,如果未能解决你的问题,请参考以下文章

如何处理 Codeigniter 上的多语言 uri 重定向?

如何为真正的多语言网站设置 CodeIgniter?

CodeIgniter 表单验证多语言标签

Codeigniter 多语言并将语言添加到 url 以进行 seo

markdown 在CodeIgniter中开发多语言站点

Codeigniter:使用语言助手和数据库的多语言