2010-09-14 10 views
5

Mon application symfony devrait obtenir la langue de l'utilisateur du sous-domaine:symfony par langue basée sur un sous-domaine

en.project.com - pour l'anglais fr.project.com - pour le français

et ainsi de suite ... Le filtre spécial obtient 'GET' param 'lang' de l'uri actuel et l'enregistre dans l'attribut utilisateur. Comment configurer la configuration de l'hôte virtuel apache pour plusieurs sous-domaines?

+0

Mon café doit être chaud, mais il est tiède .. –

Répondre

0

Essayez de les ajouter comme ServerAlias dans votre fichier de configuration httpd.

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

En savoir plus sur les alias de serveur: http://httpd.apache.org/docs/2.0/en/mod/core.html#serveralias

Votre filtre Symfony peut simplement analyser le domaine au cours de la première demande et définir une variable de session. Ce est non testé, mais devrait fonctionner:

<?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(); 
    } 
} ?> 
Questions connexes