Как игнорировать домен верхнего уровня при использовании хоста для маршрутизации к поддомену в Symfony?

У меня есть веб-сайт, который я тестирую локально, используя domain.lc. На веб-сайте есть поддомен sub.domain.lc, который перенаправляется на другой контроллер, например:

my_bundle:
    host:     sub.domain.lc
    resource: "@MyBundle/Controller/"
    type:     annotation
    prefix:   /

Поддомен направляется в мой пакет из-за хоста, но я хотел бы, чтобы он также направлялся в этот пакет, используя sub.domain.com. Есть ли способ игнорировать домен верхнего уровня с помощью хоста?


person Scuba Kay    schedule 21.04.2015    source источник


Ответы (2)


Вы можете использовать заполнитель следующим образом:

my_bundle:
    resource: "@MyBundle/Controller/"
    type:     annotation
    prefix:   /
    host:     "{domain}"
    defaults:
        domain: "%domain%"
    requirements:
        domain: "sub\.domain\.(lc|com)"

Но есть проблема с генерацией абсолютных URL. Это зависит от того, где в данный момент работает ваше приложение (loc или com), и вам нужно указать его в качестве параметра контейнера (хорошее место — parameters.yml). Ссылка на аналогичную проблему.

person kba    schedule 21.04.2015

Хотя kba дал ответ, который мне очень помог, и я фактически приму его ответ как правильный, я хочу показать вам, как в итоге выглядел мой маршрут:

my_bundle:
    host:     sub.domain.{tld}
    resource: "@MyBundle/Controller/"
    type:     annotation
    prefix:   /
    requirements:
        tld: lc|nl
    defaults:
        tld: nl

Я не использовал параметр Service Container в своем маршруте, потому что знаю, что мой домен не изменится. Только мой домен верхнего уровня может измениться.

person Scuba Kay    schedule 22.04.2015