Search code examples
symfonyroutestld

How do I ignore the top level domain when using host to route to a subdomain in Symfony?


I have a website that I'm testing locally using domain.lc. The website has a subdomain sub.domain.lc that routes to a different controller, like this:

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

The subdomain routes to my bundle because of the host, but I would like it to also route to this bundle using sub.domain.com. Is there a way to ignore the top level domain using the host?


Solution

  • You can use placeholder like this:

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

    But there is a problem with generating absolute URLs. It depends on where your app is currently running (loc or com) and you need to specify it as container parameter (parameters.yml is good place). Link to similar problem.