
Question:
I know it is possible to filter a route by host, like this:
irc_backend.report.stacking_issue:
path: /reports/stacking-issues
host: backend.domain.com
defaults: { _controller: IRCBackendBundle:Reports/Product/StackingIssueReport:index }
Is it possible to alter this configuration to match multiple domains? For example:
irc_backend.report.stacking_issue:
path: /reports/stacking-issues
host: backend.domain.com|dev.backend.domain.com
defaults: { _controller: IRCBackendBundle:Reports/Product/StackingIssueReport:index }
I'm trying to avoid setting up 2 routes for every page.
Answer1:You can try placeholders in your hostname with requirements (i.e.. <a href="http://symfony.com/doc/current/components/routing/hostname_pattern.html" rel="nofollow">Symfony Documentation</a>)
irc_backend.report.stacking_issue:
path: /reports/stacking-issues
host: "{mydomaines}"
defaults: { _controller: IRCBackendBundle:Reports/Product/StackingIssueReport:index }
requirements:
mydomaines: backend.domain.com|dev.backend.domain.com
Answer2:If you read the <a href="http://symfony.com/doc/current/components/routing/hostname_pattern.html" rel="nofollow">Symfony documentation</a>, you'd know that you need to use placeholders. For your code, it would be :
irc_backend.report.stacking_issue:
path: /reports/stacking-issues
host: "{subdomain}.domain.com"
defaults:
_controller: IRCBackendBundle:Reports/Product/StackingIssueReport:index
subdomain: backend
requirements:
subdomain: backend|dev.backend
I hope it'll help you !
EDIT :
If you want your default subdomain to be the current one, you can use a parameter like this :
irc_backend.report.stacking_issue:
path: /reports/stacking-issues
host: "{subdomain}.domain.com"
defaults:
_controller: IRCBackendBundle:Reports/Product/StackingIssueReport:index
subdomain: "%subdomain%"
requirements:
subdomain: backend|dev.backend
Then you will be able to define this parameter in an <a href="http://symfony.com/doc/current/cookbook/doctrine/event_listeners_subscribers.html" rel="nofollow">Event listener</a> with this line of code :
$container->setParameter("subdomain", $your_subdomain);
P-S : Don't forget to add the Service container to your listener's dependencies