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

Laravel项目部署CPanel后POST请求报405 Method NotAllowed错误求助

解决Laravel部署在CPanel上POST请求返回405 Method NotAllowed的问题

首先修正路由代码的语法错误:
你提供的路由代码存在明显语法问题,[UserSubscribeController::class, subscribe']中subscribe前缺少单引号,正确写法应为:

Route::post('subscribe/{package}', [UserSubscribeController::class, 'subscribe'])->name('subscribe');

接下来排查CPanel部署环境下的常见问题:

  • 检查.htaccess配置
    确保项目public目录下的.htaccess配置正确,以支持URL重写,标准配置如下:

    <IfModule mod_rewrite.c>
        <IfModule mod_negotiation.c>
            Options -MultiViews -Indexes
        </IfModule>
    
        RewriteEngine On
    
        # 处理授权头
        RewriteCond %{HTTP:Authorization} .
        RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    
        # 移除末尾斜杠
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteCond %{REQUEST_URI} (.+)/$
        RewriteRule ^ %1 [L,R=301]
    
        # 所有请求转发到入口文件
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^ index.php [L]
    </IfModule>
    

    同时确认CPanel已启用mod_rewrite模块。

  • 彻底清除缓存
    尽管你已尝试清除缓存,仍建议在CPanel终端执行以下命令确保缓存完全清除:

    php artisan cache:clear
    php artisan route:clear
    php artisan config:clear
    php artisan view:clear
    
  • 验证请求实际情况
    打开浏览器开发者工具(F12)的网络标签,提交表单后检查:

    • 请求方法是否为POST
    • 请求URL是否与路由生成的地址完全匹配
    • 是否存在额外的路径或参数错误
  • 检查目录权限
    确保Laravel项目的storage和bootstrap/cache目录权限设置正确(通常为755或775,根据服务器配置调整),避免权限问题导致路由解析异常。

  • 排查路由冲突
    确认没有其他路径相似的路由(如GET类型的subscribe/{package}),路由定义顺序也会影响匹配优先级,确保POST路由在冲突路由之前定义。

内容的提问来源于stack exchange,提问作者Eze Henry

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 05:27:07