0

我有以下路线

hekdb_login_show:
    path: /Login/showForm
    defaults: { _controller: HEKdbBundle:Login:showForm }

hekdb:
  path: /
  defaults:
    _controller: FrameworkBundle:Redirect:redirect
    route: hekdb_login_show
    permanent: true

(其实还有更多,但这两个就足够了。)最后一个路由应该是在主机名重定向到登录表单后重定向所有访问网站的人。

问题是最后一个路由规则中的路径“/”匹配每条路径,因为每条路径都以“/”开头。结果是无限重定向循环。

我读到路径被解释为正则表达式,所以我尝试了模式“^/$”。但这导致了 PHP 错误。然后我尝试转义特殊的正则表达式符号“^”和“$”,即“\^/\$”。但这也不起作用。

4

1 回答 1

1

最后包含这条路线以拾取通过任何现有路线掉落的所有物品。我认为这就是你真正想要的。

zayso_core_unknown:
    pattern:  /{url}
    defaults: { _controller: ZaysoAreaBundle:Public:index, url: "unknown" }
    requirements:
       url: ".+"

不记得我从哪里得到它,但它确实有效。

而且您误认为/匹配了所有内容。我经常把它作为我的第一条路线:

zayso_core_index:
    pattern:  /
    defaults: { _controller: ZaysoAreaBundle:Public:index }

它按预期工作。

你可能想弄乱 app/console router:match 看看会发生什么。

于 2013-08-19T19:41:57.047 回答