Все!
Я просто вижу, что маршрутизатор symfony2 не использует хост-часть uri. Мне нужно отделить СТРАНУ как третий поддомен и локаль как первый элемент в пути маршрута
http://{country}.mysite.com/{_locale}/myaction, т.е.
en.mysite.com/en/action --- английские компании и английский язык
de.mysite.com/ru/action --- немецкие компании и русский язык
ru.mysite.com/uk/action --- русские компании и украинский язык
Проблема решена с помощью службы, как показано ниже:
-- config.yml
services:
kernel.listener.subdomain_listener:
class: Acme\DemoBundle\Listener\SubdomainListener
tags:
- { name: kernel.event_listener, event: kernel.request, method: onDomainParse }
-- SubdomainListener.php
<?php
namespace Acme\DemoBundle\Listener;
use Symfony\Component\EventDispatcher\EventDispatcher;
use Symfony\Component\EventDispatcher\Event;
class SubdomainListener
{
public function onDomainParse(Event $event)
{
$request = $event->getRequest();
$session = $request->getSession();
// todo: parsing subdomain to detect country
$session->set('subdomain', $request->getHost());
}
}
НО... Вопрос: как возможно (правильно) реализовать процесс AUTH между несколькими поддоменами прозрачно только один раз??
пользователь вошел через en.mysite.com/{_locale}/...
пользователь переходит на страницу de.mysite.com/{_locale}/..., но система знает о нем (ней) и больше не запрашивает учетные данные для входа/пароля
Мне кто-нибудь помогает? Спасибо за аванс! Сертифицированный старший разработчик/администратор баз данных Oracle