带斜杠的Url被重定向回主机Url

  • 本文关键字:Url 重定向 主机 shopware6
  • 更新时间 :
  • 英文 :


我有销售渠道,域名为"http://tld.de/staging"只有这个域,唯一的其他销售渠道是默认的无头销售渠道。

我创建了一个这样的自定义路由:

@Route("/path", name="frontend.path.index", options={"seo"="false"}, methods={"GET"})

当使用url http://tld.de/staging/path时,它工作得很好,但当我使用url http://tld.de/staging/path/(带斜杠)时,它将我重定向到http://tld.de/path

我已经尝试为该方法添加第二个路由,但是不起作用

@Route("/path/", name="frontend.path.index.trailing_slash", options={"seo"="false"}, methods={"GET"})

我错过了什么还是这只是默认行为?

附加信息:自定义控制器类扩展了StorefrontController,并且在自定义控制器内部没有发生重定向,我甚至在方法的开头添加了dd()用于测试。如果我在第一个路由中添加尾斜杠,那么带尾斜杠的url会正常工作,但没有的url会被重定向。

将带尾斜杠的url重定向到不带斜杠的url是Symfony的默认行为。如果重定向不尊重你的基本路径,那么可能是你的配置有问题。

但是,如果您绝对必须在不重定向的情况下提供两个url,那么您可以使用通配符来这样做。显然,这是非常规的,但应该可以工作:

/**
* @Route("/path{trailingSlash}", name="frontend.path.index", methods={"GET"}, defaults={"trailingSlash"="/"}, requirements={"trailingSlash"="[/]{0,1}"})
*/

最新更新