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

本地正常的Laravel+OpenAI项目部署hPanel后POST请求报404错误

Laravel部署hPanel子域名后/api/send返回404的排查方案

1. 确认子域名文档根目录指向public文件夹

hPanel中子域名默认可能指向对应子域名的根文件夹,但Laravel的入口文件是public/index.php,必须将子域名的文档根目录设置为项目的public目录,否则路由无法被正确解析,直接返回404。

2. 检查前端API请求路径是否正确

你的JS代码中使用了Blade语法{{ url('/api/send') }}生成请求地址:

const url = '{{ url('/api/send') }}';
  • 如果这段JS代码是放在单独的.js文件中,Blade语法不会被解析,最终url变量会是字符串{{ url('/api/send') }},导致请求路径错误。
  • 解决方法:
    • 要么将JS代码嵌入到Blade模板的<script>标签内;
    • 要么在Blade模板中定义全局变量,再在单独JS文件中引用:
      <!-- Blade模板头部添加 -->
      <script>window.apiSendUrl = '{{ url('/api/send') }}';</script>
      
      // JS文件中使用
      const url = window.apiSendUrl;
      

3. 重置线上路由缓存

部署后可能存在路由缓存问题,导致新路由未加载:

  • 通过hPanel的终端或SSH连接服务器,执行命令:
    php artisan route:clear
    php artisan route:cache # 生产环境建议缓存路由提升性能
    
  • 执行php artisan route:list查看路由列表,确认POST /api/send是否存在。

4. 验证URL重写规则

Laravel依赖.htaccess实现URL重写,确认public目录下的.htaccess文件存在且配置正确:

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes
    </IfModule>

    RewriteEngine On

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]

    # Send Requests To Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

同时在hPanel的设置中确认mod_rewrite模块已启用。

5. 检查控制器文件与命名空间

  • 确认ChatBotController.php文件存在于app/Http/Controllers目录下,线上环境文件名大小写正确(Linux系统区分大小写,本地Windows不区分);
  • 控制器类的命名空间必须是namespace App\Http\Controllers;,与路由中的引用一致。

额外注意:控制器代码的语法错误

你的控制器中使用了中文引号,且参数名错误:

// 错误写法
‘max-token’ => 150,
‘model’ => ‘text-davinci-003’,

需改成英文单引号,且参数名应为max_tokens(OpenAI API要求的正确参数名):

// 正确写法
'max_tokens' => 150,
'model' => 'text-davinci-003',

这个错误会导致PHP语法报错,虽不会直接引发404,但会导致请求失败,需一并修复。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 07:24:55