You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel API Get方法正常,Put/Delete/Post在生产服务器和Laragon伪静态下失效

问题原因分析

核心问题是服务器的URL重写规则未正确处理非GET类型的HTTP请求,导致PUT、DELETE、POST请求无法被转发到Laravel的index.php入口文件,只有手动在URL中加入index.php时,请求才会直接进入Laravel的处理流程。具体可能的场景如下:

  • Apache环境:

    • 未开启mod_rewrite模块,导致URL重写功能完全失效;
    • .htaccess文件配置错误,比如重写规则仅匹配GET请求,或者缺少将所有非文件/目录的请求转发到index.php的规则。Laravel默认的.htaccess需要包含以下关键规则:
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule ^ index.php [L]
      
    • .htaccess文件权限不足,服务器无法读取并应用重写规则。
  • Nginx环境:

    • Nginx配置文件的location块未正确配置try_files指令,正确配置应确保所有请求都转发到index.php:
      location / {
          try_files $uri $uri/ /index.php?$query_string;
      }
      
    • 配置中限制了HTTP请求方法,比如仅允许GET,导致PUT/DELETE/POST请求被直接拦截。
  • Laragon伪静态配置:
    Laragon的伪静态规则未覆盖所有HTTP请求方法,仅对GET请求做了重写处理,其他类型请求无法触发重写逻辑,因此无法到达Laravel入口文件。

内容的提问来源于stack exchange,提问作者Anurag CK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 12:55:58