Symfony 6.3 URL出现多余后缀:1的问题排查求助
:1的原因排查 残留的路由导入配置
你删除了annotations.yaml,但可能在其他路由配置文件(比如config/routes.yaml、routes_dev.yaml这类环境专属文件)里还保留着对它的导入声明,比如imports: [{ resource: 'annotations.yaml' }]。系统解析时找不到原文件,仍会尝试生成路由标识,进而触发重复路由的序号追加逻辑。Opcode缓存未清理
只删除var/cache可能不够——如果你的PHP环境启用了OPcache、APC这类 opcode 缓存,旧的路由编译信息会存在这里,不会随文件缓存一起被删除。需要重启PHP-FPM或Web服务器,彻底清除opcode缓存。如果用Docker容器部署,还要确认容器内的缓存是否真的被清除,必要时重启容器。路由重复定义
删除注解文件后,原本通过注解声明的路由,可能又在其他路由文件里被手动重新定义了。系统检测到相同路径的路由存在多个,会自动给后续的路由追加:1来区分。可以执行bin/console debug:router命令,查看所有路由的详细列表,找出路径相同但来源不同的重复路由。第三方Bundle的路由冲突
某些第三方Bundle可能会自动生成路由,和你的现有路由路径重复。可以临时禁用非核心Bundle,重新生成路由后观察问题是否消失,逐步定位冲突的Bundle。外部缓存驱动残留
如果你的应用用了Redis、Memcached这类外部缓存驱动来存储路由信息,只清理本地var/cache不会清除这些外部缓存里的旧数据,需要手动清空对应缓存存储的路由相关键值。
内容的提问来源于stack exchange,提问作者Galuk

