CodeIgniter Url Rewrite(取决于语言)

时间:2011-01-24 21:29:09

标签: codeigniter localization url-rewriting

所以,我有我的.htaccess,我的控制器,一切都很顺利。我添加了本地化,所以现在我有葡萄牙语(默认),英语和意大利语  我在appplication / languages目录中使用_lang文件,我正在使用session-> userdata('lang'),一切正常。 在顶部菜单之后,我的控制器以葡萄牙语单词命名。我在寻找的是:
重写我的网址,更改控制器的名称,具体取决于session-> userdata('lang')。
这甚至可能吗?怎么样?

谢谢

正如InFog建议的那样,我在路线文件中尝试:

if ($this->session->userdata('lang') == 'english') { 
    $route['novidades/([a-z]+)'] = 'news/$1'; 
}

但是当我打开应用程序时,我只是得到一个空白的屏幕 我已经尝试过没有if子句了,当我去

时没有任何反应
  

http://localhost/myapp/novidades

网址保持不变

2 个答案:

答案 0 :(得分:1)

重写CI_Router以转换fetch_class()方法中的名称以更改控制器。覆盖fetch_method()以更改方法。

答案 1 :(得分:1)

您可以使用CodeIgniter路由解决此问题。您可以编辑文件'system / application / config / routes.php:

$route['news/([a-z]+)'] = 'noticias/$1';

这样,像'/ news / run-fools'这样的网址将被重新映射到'noticias / run-fools'。现在你只能有一个控制器=)

祝你好运