Определить язык и перенаправить на поддомен в SymfonyPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Определить язык и перенаправить на поддомен в Symfony

Сообщение Anonymous »

Я использую Symfony 1.2.7. Моя сеть написана на нескольких языках, каждый из которых находится в субдомене, например en.example.com, es.example.com. Если пользователь заходит на сайт example.com, я хочу перенаправить его на его язык. Я также хочу иметь поддержку staging.example.com и перенаправление на es.staging.example.com и en.staging.example.com, чтобы я мог протестировать все перед развертыванием.

У меня есть следующий код, который работает как с index.php, так и с frontend_dev.php. Мой вопрос: можете ли вы его улучшить? есть ли лучший или более чистый способ? Спасибо!

require_once(dirname(__FILE__).'/../config/ProjectConfiguration.class.php');

$configuration = ProjectConfiguration::getApplicationConfiguration('frontend', 'dev', true);
$context = sfContext::createInstance($configuration);

// get the domain parts as an array
$host = array_reverse(explode('.', $_SERVER['HTTP_HOST']));
list($tld, $domain, $subdomain) = $host;

// determine which subdomain we're looking at
$app = ($subdomain == 'staging') ? $subdomain2=$host[3] : $subdomain;

if(empty($app) || $app == 'www')
{
$browser_languages = $context->getRequest()->getLanguages();

foreach($browser_languages as $language)
{
$allowed_culture = in_array($language, sfConfig::get('app_languagesAvailable'));
if($allowed_culture)
{
$domain = $subdomain ? $subdomain.'.'.$domain : $domain;
$url = 'http://'.str_replace($domain.'.'.$tld, $language.'.'.$domain.'.'.$tld, $_SERVER['HTTP_HOST']).$_SERVER['REQUEST_URI'];

$context->getController()->redirect($url);
break;
}
}
}

$context->dispatch();


Обновить Решение: собственный фильтр



Подробнее здесь: https://stackoverflow.com/questions/313 ... on-symfony
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»