symfony2 路由中带点的模式
Pattern with dots in symfony2 routing
我有 2 个捆绑包:一个用于我的网站,一个用于我的 API。我的 API URL 是 mywebsite
,我的网站 URL 是 www.website.com
。
我使用 host
参数按主机过滤路由,我想允许 localhost
在我的一个包上用于本地开发目的(不创建虚拟主机)。
但是得到这个错误:
Parameter "domain" for route "tv_home" must match "[^\.]++" ("((www\.)?mywebsite\.fr|localhost)" given) to generate a corresponding URL.
我知道它来自我在这里使用的正则表达式:
domain: "((www\.)?mywebsite\.fr|localhost)"
如果我不能在此正则表达式中使用点,我该如何实现我的目标?
这是我的主路由文件:
tv_api:
resource: "@TVApiBundle/Resources/config/routing.yml"
host: "api.mywebsite.fr"
prefix: /
tv_site:
resource: "@TVSiteBundle/Resources/config/routing.yml"
host: "{domain}"
defaults:
domain: "((www\.)?mywebsite\.fr|localhost)"
prefix: /
此致,
默认域值不影响路由是否匹配。由于域如果始终出现在请求中,它仅对生成 URL 有用。为此目的有一些要求(顺便说一句 [^.]++ 将是域的默认要求)。
tv_site:
resource: "@TVSiteBundle/Resources/config/routing.yml"
host: "{domain}"
defaults:
domain: "mywebsite.fr"
requirements:
domain: "((www\.)?mywebsite\.fr|localhost)"
prefix: /
应该可以。但是所有路由都将使用 mywebsite.fr 生成(在绝对 url 的情况下)。您可以使用服务容器参数。
tv_site:
resource: "@TVSiteBundle/Resources/config/routing.yml"
host: "{domain}"
defaults:
domain: "%domain%"
requirements:
domain: "((www\.)?mywebsite\.fr|localhost)"
prefix: /
例如,定义此参数的最简单方法在 parameter.yml 中。或者我认为你也可以完全省略默认键。
我有 2 个捆绑包:一个用于我的网站,一个用于我的 API。我的 API URL 是 mywebsite
,我的网站 URL 是 www.website.com
。
我使用 host
参数按主机过滤路由,我想允许 localhost
在我的一个包上用于本地开发目的(不创建虚拟主机)。
但是得到这个错误:
Parameter "domain" for route "tv_home" must match "[^\.]++" ("((www\.)?mywebsite\.fr|localhost)" given) to generate a corresponding URL.
我知道它来自我在这里使用的正则表达式:
domain: "((www\.)?mywebsite\.fr|localhost)"
如果我不能在此正则表达式中使用点,我该如何实现我的目标?
这是我的主路由文件:
tv_api:
resource: "@TVApiBundle/Resources/config/routing.yml"
host: "api.mywebsite.fr"
prefix: /
tv_site:
resource: "@TVSiteBundle/Resources/config/routing.yml"
host: "{domain}"
defaults:
domain: "((www\.)?mywebsite\.fr|localhost)"
prefix: /
此致,
默认域值不影响路由是否匹配。由于域如果始终出现在请求中,它仅对生成 URL 有用。为此目的有一些要求(顺便说一句 [^.]++ 将是域的默认要求)。
tv_site:
resource: "@TVSiteBundle/Resources/config/routing.yml"
host: "{domain}"
defaults:
domain: "mywebsite.fr"
requirements:
domain: "((www\.)?mywebsite\.fr|localhost)"
prefix: /
应该可以。但是所有路由都将使用 mywebsite.fr 生成(在绝对 url 的情况下)。您可以使用服务容器参数。
tv_site:
resource: "@TVSiteBundle/Resources/config/routing.yml"
host: "{domain}"
defaults:
domain: "%domain%"
requirements:
domain: "((www\.)?mywebsite\.fr|localhost)"
prefix: /
例如,定义此参数的最简单方法在 parameter.yml 中。或者我认为你也可以完全省略默认键。