2010-09-14 4 views
5

Моя Symfony приложение должно получить язык пользователя из подобласти:Symfony выбор на основании подобласти

en.project.com - для английского fr.project.com - для французского

и так далее ... Специальный фильтр получает 'GET' param 'lang' из текущего uri и сохраняет его в атрибуте пользователя. Как настроить конфигурацию виртуального хоста apache для нескольких поддоменов?

+0

Мой кофе должен быть горячим, но вместо этого он тепл .. –

ответ

0

Вам нужно просто переписать подстановочный домен с помощью mod_rewrite, и когда у вас будет субдомен в качестве параметра, вы можете продолжить.

http://www.easymodrewrite.com/example-subdomains

0

Try, чтобы добавить их в ServerAlias в файле конфигурации HTTPd.

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

Подробнее о серверных псевдонимамах: http://httpd.apache.org/docs/2.0/en/mod/core.html#serveralias

Вашего Symfony фильтр может просто разобрать домен во время первого запроса и установить переменный сеанс. Это тестировался, но должен работать:

<?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(); 
    } 
} ?> 
Смежные вопросы