2013-07-21 135 views
1

我有一個symfony2網站,我試圖國際化。我的路線有/ en和/ es前綴,但是我希望sf2在url中沒有指定語言的情況下獲取默認語言。如何在web根路由(/)中設置默認語言環境?

我定義這個參數的根路徑:

home: 
    [...] 
    prefix: /{_locale}/ 
    defaults: { _locale: en } 
    requirements: 
     _locale: en|es 

然後,如果我去「www.web.com/en」或「www.web.com/es」重定向正確,但如果我去'www.web.com',它不會得到默認語言('en')。我收到一條錯誤消息No route found for "GET /".

哪裏出錯?

謝謝。

回答

0

除了你的前綴,它看起來都是正確的。取消尾部斜線,否則你的路由規則試圖匹配www.web.com//這意味着你實際上沒有爲www.web.com定義的路由。

0

可以解決此問題dublicating路線

在你應用程序/配置/ routing.yml中設置2個不同的路線:

  1. 爲主頁/保留一,強制特定控制器
  2. 其中一個用於所有其他路徑(在此示例中用 註釋定義)具有區域設置前綴

插入:

app: 
    pattern: /
    defaults: {_controller: AppBundle:Default:index } 

app_locale: 
    resource: "@AppBundle/Controller/" 
    type:  annotation 
    prefix: /{_locale} 
    defaults: { _locale: en } 
相關問題