使用主机路由到 Symfony 中的子域时如何忽略顶级域?
How do I ignore the top level domain when using host to route to a subdomain in Symfony?
我有一个网站,正在使用 domain.lc 在本地进行测试。该网站有一个子域 sub.domain.lc 路由到不同的控制器,如下所示:
my_bundle:
host: sub.domain.lc
resource: "@MyBundle/Controller/"
type: annotation
prefix: /
由于主机,子域路由到我的包,但我希望它也使用 sub.domain.com 路由到这个包。有没有办法使用主机忽略顶级域?
您可以像这样使用占位符:
my_bundle:
resource: "@MyBundle/Controller/"
type: annotation
prefix: /
host: "{domain}"
defaults:
domain: "%domain%"
requirements:
domain: "sub\.domain\.(lc|com)"
但是生成绝对 URL 时出现问题。这取决于您的应用程序当前所在的位置 运行(loc 或 com),您需要将其指定为容器参数(parameters.yml 是个好地方)。 .
虽然 kba 确实提供了一个对我很有帮助的答案,事实上我会接受他的答案是正确的,但我想向您展示我的路线最终是什么样子的:
my_bundle:
host: sub.domain.{tld}
resource: "@MyBundle/Controller/"
type: annotation
prefix: /
requirements:
tld: lc|nl
defaults:
tld: nl
我没有在路由中使用服务容器参数,因为我知道我的域不会改变。只有我的顶级域可以更改。
我有一个网站,正在使用 domain.lc 在本地进行测试。该网站有一个子域 sub.domain.lc 路由到不同的控制器,如下所示:
my_bundle:
host: sub.domain.lc
resource: "@MyBundle/Controller/"
type: annotation
prefix: /
由于主机,子域路由到我的包,但我希望它也使用 sub.domain.com 路由到这个包。有没有办法使用主机忽略顶级域?
您可以像这样使用占位符:
my_bundle:
resource: "@MyBundle/Controller/"
type: annotation
prefix: /
host: "{domain}"
defaults:
domain: "%domain%"
requirements:
domain: "sub\.domain\.(lc|com)"
但是生成绝对 URL 时出现问题。这取决于您的应用程序当前所在的位置 运行(loc 或 com),您需要将其指定为容器参数(parameters.yml 是个好地方)。
虽然 kba 确实提供了一个对我很有帮助的答案,事实上我会接受他的答案是正确的,但我想向您展示我的路线最终是什么样子的:
my_bundle:
host: sub.domain.{tld}
resource: "@MyBundle/Controller/"
type: annotation
prefix: /
requirements:
tld: lc|nl
defaults:
tld: nl
我没有在路由中使用服务容器参数,因为我知道我的域不会改变。只有我的顶级域可以更改。