2013-12-14 34 views
-1

語言我已經寫了下面的URL規則:Yii的urlmanager,追加在主頁上

  '<lang:(it|de|en|fr|es)>' => 'site/index', 
      '<lang:(it|de|en|fr|es)>/search' => 'site/search',        
      '<lang:(it|de|en|fr|es)>/<action:(page|logout)>/*' => 'site/<action>',              
      '<lang:(it|de|en|fr|es)>/<controller:\w+>' => '<controller>/index',     
      '<lang:(it|de|en|fr|es)>/<controller:\w+>/<action:\w+>/*' => '<controller>/<action>',    
      '<lang:(it|de|en|fr|es)>/<module:\w+>/<controller:\w+>/<action:\w+>/*' => '<module>/<controller>/<action>', 

和他們的工作,因爲我需要,但最後一個問題。

有了這個規則,我所取得的語言連接到這樣所有網址: www.mysite.com/it/CONTROLLER/ACTION

的問題留在第一次訪問,如果用戶寫道:直接在瀏覽器中的網址,他去www.mysite.com,而不是www.mysite.com/userlanguage/ :(

這樣我就有3個重複的主頁的網址是:

www.mysite.com 
www.mysite.com/userlanguage/ 
www.mysite.com/index.php 

我需要將所有這些重定向到www.mysite.com/ userlanguage/

我的需求是爲語言提供一個不同的頁面url。

繼的.htaccess

RewriteEngine on 
    #LOCAL 


    RewriteBase /mydir/subdir/ 

    # if a directory or a file exists, use it directly 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 

    RewriteCond %{REQUEST_URI} !=/favicon.ico 
    # otherwise forward it to index.php 
    RewriteRule . /index.php 

    AddDefaultCharset utf-8 

誰能幫助我?謝謝

+0

退房這個問題,這是非常相似http://stackoverflow.com/questions/20587575/yii-change-homeurl –

回答

0

如果你的默認控制器是網站/索引,那麼你可以這樣做。

public function actionIndex() { 
     if(!isset($_GET['lang'])){ 
      $this->redirect(array('site/index','lang'=>'de')+$_GET); // 'de' is considered as default language 
     } 
     --- 
    } 
+0

我以這種方式解決了我,但是謝謝! :) – user2548436