php - 所有页面的 url codeigniter 多语言

标签 php mysql codeigniter

我有多语言网站的基本网址 localhost/new/。当更改语言语言出现在 url localhost/new/en 等中时。问题是,当我更改页面时,语言消失 localhost/new/popular_tests,当停留在该页面上时,我更改语言,url 返回到 localhost/new/en.目的是向特定页面添加语言,例如 localhost/new/popular_tests/en 等。

我在 Controller 中有:

public function changeLang($lang_code=''){
            $this->lang->load('main', $lang_code=='' ? 'english' : $lang_code);
                    $this->session->set_userdata('language',$lang_code);

                     redirect(base_url().''.$lang_code);

        }

在 config/route.php 中我有:

$route['default_controller'] = 'home';
$route['(:any)/test'] = 'home/test/$1';
$route['popular_tests'] = 'home/popular_tests';
$route['404_override'] = '';
$route['translate_uri_dashes'] = TRUE;


$route['^(\w{2})/(.*)$'] = '$2';
$route['^(\w{2})$'] = $route['default_controller'];

非常感谢。

最佳答案

那是因为你有 route定义为$route['^en$'] = $route['default_controller'];这意味着任何以 en 结尾的 url将指向default_controller .

尝试用以下内容替换该路线:

 $route['^new/(:any)/en$'] = 'home/$1';
 $route['(:any)/new/en$'] = $route['default_controller'];

PS:这是未经测试的版本

关于php - 所有页面的 url codeigniter 多语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36621201/

相关文章:

mysql - 使用 MySQL 返回列中的第一个唯一值一次

javascript - 从数据库引导模态动态数据

php - 地理编码器谷歌地图经度和纬度查找

javascript - 向下钻取后样条曲线未绘制 - HighCharts

mysql - Laravel 查询在日期时间列上使用 yyyy-mm--dd 值

php - codeigniter 中的相对路径

php - 使用 Paypal 引用付款创建结算协议(protocol)问题

php - 将文件从 Android 上传到 DJango。 Request.FILES 总是空的

php - sql 查询连接两个表

php - 从另一个表 SQL 连接