2016-04-14 100 views
0

我有基地址本地主機/新/多語言網站。當更改語言語言出現在url localhost /新/ en等。問題是,當我改變一個頁面語言disapears localhost/new/popular_tests,當留在該頁面上我改變語言url返回到本地主機/新/恩。其目的是增加語言的某些頁面像本地主機/新/ popular_tests/EN等url codeigniter多語言的所有頁面

我在控制器:

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']; 

非常感謝提前。

回答

0

這是因爲您的route定義爲$route['^en$'] = $route['default_controller'];,這意味着以en結尾的任何網址都將指向default_controller

嘗試更換這個這條路線:

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

PS:這是未經測試版本

+0

你好,Nishanth廟,感謝您的答覆。它沒有工作。現在,我有'$ route ['^(\ w {2})/(。*)$'] ='$ 2'; $ route ['^(\ w {2})$'] = $ route ['default_controller'];'你能提出這個問題嗎? – Nan

+0

我的早期解決方案有什麼問題 –

+0

未找到頁面 – Nan