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

Laravel服务端API访问报404错误,Web端正常问题求助

解决Laravel API子目录部署的.htaccess冲突问题

问题总结

  • 目录结构:public_html/mobile/ 部署Laravel API项目,public_html 下另有Web端代码
  • 本地环境:存在mobile/public/.htaccess时API正常工作,删除该文件后API失效
  • 服务器环境:mobile/public/.htaccess存在时Laravel无法运行;删除后能打开欢迎页,但调用API接口报404错误

核心原因

服务器环境中,上层public_html的.htaccess规则可能干扰了子目录的URL重写,或是Apache的AllowOverride配置未开启,导致Laravel的路由重写规则无法生效。

分步解决方案

1. 调整上层public_html/.htaccess规则

如果上层Web代码的.htaccess有全局重写规则,需要排除mobile目录,避免覆盖Laravel的路由规则:

# 在public_html/.htaccess的重写规则前添加以下内容
RewriteCond %{REQUEST_URI} !^/mobile/

或者添加继承规则,让子目录的.htaccess规则优先生效:

RewriteOptions inherit

2. 配置mobile目录和mobile/public目录的.htaccess

  • 在public_html/mobile/.htaccess中添加转发规则,将所有请求导向Laravel的public目录:
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
  • 恢复mobile/public/.htaccess为Laravel默认配置(如果之前删除了):
<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]

    # 所有非文件/目录请求转发到index.php
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

3. 检查服务器Apache配置

  • 确保虚拟主机配置中,public_html目录的AllowOverride设置为All,让.htaccess规则生效:
<Directory /path/to/public_html>
    AllowOverride All
    Require all granted
</Directory>
  • 确认服务器已启用mod_rewrite模块(cPanel用户可在「软件」->「Apache模块」中开启)

4. 修正Laravel环境配置

在mobile/.env文件中设置正确的项目访问地址:

APP_URL=http://你的域名/mobile

验证

完成配置后重启Apache服务,测试以下内容:

  • 访问http://你的域名/mobile应能正常打开Laravel欢迎页
  • 调用API接口(如http://你的域名/mobile/api/xxx)应正常返回数据,不再出现404错误

内容的提问来源于stack exchange,提问作者Muhammad Faiz Abdullah

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 06:20:16