首页 > 解决方案 > 如何在 routes.yaml 中排除特定路由

问题描述

关于这个主题有类似的问题,但他们谈论为路线中的特定 slug 添加正则表达式要求,这不是我要问的。

客户端我正在使用 react 并且我想 react 来处理路由中不包含该术语api的路由。

我目前拥有的

#App
app_dashboard:
    path:         /
    controller:   Symfony\Bundle\FrameworkBundle\Controller\TemplateController
    defaults:
        template: static/base.html.twig
    methods: GET

这就是我尝试过的:

#App
app_dashboard:
    path:         /^(?!api).*
    controller:   Symfony\Bundle\FrameworkBundle\Controller\TemplateController
    defaults:
        template: static/base.html.twig
    methods: GET

#App
app_dashboard:
    path:         /
    controller:   Symfony\Bundle\FrameworkBundle\Controller\TemplateController
    condition: "context.getPathInfo() matches '/(?!api).*'"
    defaults:
        template: static/base.html.twig
    methods: GET

以上每一项都会引发以下错误

找不到路线

如何在不使用 slug 的情况下将正则表达式应用于路由以排除某些路径?

标签: symfonyroutingsymfony4

解决方案


推荐阅读