2010-09-14 11 views
5

Moja symfony aplikacja powinna dostać język użytkownika z subdomeny:symfony wybierz oparty na subdomenie

en.project.com - dla angielskiej fr.project.com - dla francuskiego

i tak dalej ... Filtr specjalny otrzymuje 'GET' param 'lang' z bieżącego uri i zapisuje go w atrybucie użytkownika. Jak skonfigurować konfigurację apache wirtualnego hosta dla wielu poddomen?

+0

Moja kawa powinna być gorąca, ale zamiast to letnie .. –

Odpowiedz

0

Spróbuj dodać je jako ServerAlias w pliku konfiguracyjnym httpd.

2
<VirtualHost *:80> 
ServerName blah.com 
ServerAlias de.blah.com en.blah.com fr.blah.com 
... 
</VirtualHost> 

Czytaj więcej o aliasy serwerów: http://httpd.apache.org/docs/2.0/en/mod/core.html#serveralias

Twój filtr Symfony może po prostu analizować domenę podczas pierwszego żądania i ustawić zmienną sesji. To niesprawdzone ale powinno działać:

<?php class localeFilter extends sfFilter 
{ 
    public function execute($filterChain) 
    { 
    // Execute this filter only once 
    if ($this->isFirstCall()) { 
     $host = $_REQUEST['HTTP_HOST']; 
     $locale = array_shift(explode(".",$host)); 
     $this->getUser()->setAttribute('locale', $locale); 
    } 

    // Execute next filter 
    $filterChain->execute(); 
    } 
} ?> 
Powiązane problemy