Symfony2 app.php 接收 POST 请求作为 GET app_dev.php 工作正常

Symfony2 app.php receiving POST request as GET app_dev.php works fine

所以我正在创建一个需要发布的路线。路线如下:

my_route:
  path:     /myroute/login
  defaults: { _controller: "MyBundle:Default:login"}
  methods:  [POST]

所以我使用邮递员点击 app_dev.php/myroute/login 我得到了我正在寻找的正确响应,目前页面只是 returns "hello world"。现在,当我将邮递员更改为仅点击 app.php/myroute/login 时,我收到一条错误消息:

The server returned a "405 Method Not Allowed".

我真的很困惑为什么它说方法不允许所以我跟踪 prod.log 文件并得到以下内容:

Uncaught PHP Exception Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException: "No route found for "GET /myroute/login": Method Not Allowed (Allow: POST)"

我在邮递员中将请求作为 POST 请求发送,但不知何故 symfony 只将它们视为 GET 请求。我可以再次将 url 更改为 app_dev.php/myroute/login 并点击发送即可。我认为这是一个缓存问题,所以我尝试了以下方法来清除缓存:

$ php app/console cache:clear --env=prod --no-debug

这仍然没有解决我的问题,所以我什至还删除了 app/cache/prod 中的所有文件。我找不到任何人遇到与此类似的问题,所以我希望有人能指出我正确的方向。我还以为可能是

经过更多的挖掘,我发现了问题所在。所以我想也许是邮递员发送了不正确的方法所以我用谷歌搜索导致这个

Postman sending POST as GET

这导致有关 htaccess 文件的问题:

Redirect POST htaccess

所以首先我将邮递员设置为点击 app.php/myroute/login 并且 xdebug 将请求方法显示为 GET。我移动了 .htaccess 文件并点击相同的 url,请求方法显示为 POST。我没有点击 url,而是将我的 .htaccess 文件移回并指向 /myroute/login,一切都亮了起来。这是一个非常烦人的练习,所以我希望这会在将来帮助其他人寻找同样的问题。

对我来说,这是我的错误,即我发送到 http 而不是 https