2016-04-14 10 views
0

Ich habe Basis URL Localhost/neu/für mehrsprachige Website. Wenn Sprache geändert wird, erscheint Sprache in der URL localhost/new/de usw. Das Problem ist, wenn ich eine Seite ändere, verschwindet die Sprache localhost/new/popular_tests, wenn ich auf dieser Seite bleibe, ändere ich die Sprache die URL geht zurück zu localhost/new/de. Ziel ist es die Sprache auf die bestimmte Seite wie localhost/neu/popular_tests hinzufügen/en usw.url coderigniter multilanguage für alle Seiten

ich in der Steuerung haben:

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); 

     } 

in der config/route.php ich habe:

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

Vielen Dank im Voraus.

Antwort

0

Das ist, weil Sie ein route definiert als $route['^en$'] = $route['default_controller']; haben, die eine beliebige URL bedeutet, mit en Endung zu default_controller verweisen.

Versuchen Sie, diesen Weg mit diesem Austausch:

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

PS: Dies ist nicht getestet Version

+0

Hallo, Nishanth Matha, danke für die Antwort. Es hat nicht funktioniert. Nun habe ich '$ route ['^ (\ w {2})/(. *) $'] = '$ 2'; $ route ['^ (\ w {2}) $'] = $ route ['default_controller']; 'Kannst du etwas vorschlagen? – Nan

+0

Was war das Problem mit meiner früheren Lösung –

+0

Seite wurde nicht gefunden – Nan