Symfony控制器路由如何配置正则排除指定URL路径'abc'?
解决方案
你可以使用PCRE正则的负向先行断言实现需求,只需要将requirements里url对应的正则修改为^(?!abc$).+即可。
修改后的完整注解配置如下:
/** * @Route(path="/api/{url}", name="test", requirements={"url"="^(?!abc$).+"}) */ public function index(string $url) { ... }
正则说明
^匹配字符串开头(?!abc$)负向先行断言,表示当前位置之后不能是完整的abc字符串($匹配字符串结尾,确保只排除恰好等于abc的路径,不会误伤abc123、xabc这类路径).+匹配任意1个及以上字符,和你原有逻辑保持一致
如果你需要排除所有以
abc开头的路径,只需要把正则里的$去掉,改成^(?!abc).+即可。
内容的提问来源于stack exchange,提问作者revcerseOjectjs
相关产品推荐
相关产品推荐

