php - 忽略 Symfony 路由中是否存在斜杠
问题描述
我正在开发基于 Symfony 4.1.0 的微服务,它在 config/routes.yaml 中定义了以下 REST API:
import:
path: /sip/calls/
controller: App\Controller\ApiController::import
methods: [POST]
/sip/calls
问题是导致POST 请求NotFoundHttpException
(未找到“POST /sip/calls”的路由)。如果我从 config/routes.yaml 中的路由路径中删除尾部斜杠,请求/sip/calls
通过,但/sip/calls/
停止工作。
为什么它的行为像?如何让它忽略斜线或它的缺失?
解决方案
正如在:Redirecting URLs with Trailing Slashes Symfony 4.1 通过创建重定向 301 来处理这个内部问题。但问题是这个重定向不适用于 POST 请求。
正如这里提到的,理论上为什么 HTTP 没有 POST 重定向,您可以使用重定向 307 或 308,但我过去对此有一些问题,所以我选择了带有斜杠的重复路径的简单解决方案。
推荐阅读
- r - 无法更改 R utils::choose.dir() 中的默认目录
- flutter - 如何保存 WebView 的 cookie?(扑)
- android - 为什么在协调器布局的底部修复按钮在android中使用回收视图滚动
- reactjs - 在 React/Firebase 上更改用户的授权
- python - 如何修复我的音乐测验排行榜
- flutter - 构建颤振 apk
- python - 在 Python 中的函数内用作变量名一部分的参数
- ansible - Ansible - 动态目录结构创建
- java - 使用 Java 和 Apache POI 使用地图的结果填充 xlsx 文件的空单元格
- android - 单击添加按钮时,如何在现有卡片视图下方添加卡片视图?