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

如何在Laravel应用中部署独立简单PHP应用并通过/api路径正常访问

目录结构示意图

该问题的核心原因是Laravel默认的URL重写规则会将站点下所有请求都转发到Laravel自身的入口文件处理,导致/api路径的请求没有匹配到独立的API应用目录,按照你使用的Web服务器选择对应方案修改即可:

一、Nginx 配置修改

在当前站点的Nginx配置文件中,优先添加/api路径的匹配规则,放在原有Laravel的location规则之前:

location ^~ /api {
    # 替换为你API目录的实际绝对路径,如果放在Laravel的public目录下就填对应路径
    alias /www/wwwroot/example.com/public/api;
    try_files $uri $uri/ /api/index.php$is_args$args;
    
    location ~ \.php$ {
        # 替换为你实际使用的php-fpm监听地址
        fastcgi_pass unix:/run/php/php8.2-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $request_filename;
        include fastcgi_params;
    }
}

修改完成后执行nginx -s reload重载配置即可生效。

二、Apache 配置修改

两种修改方式任选其一即可:

方式1:修改Laravel的重写规则

编辑Laravel根目录下public/.htaccess文件,在原有规则最顶部添加排除/api路径的规则:

RewriteEngine On
# 新增行:匹配到/api开头的请求直接跳过后续Laravel重写规则
RewriteRule ^api($|/) - [L]
# 下方保留Laravel原有重写规则即可

方式2:给API应用单独配置重写规则

在你的API目录下新建.htaccess文件,写入以下内容:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

修改完成后重启Apache服务生效。

注意事项

  • 确保API目录的权限和Web服务运行用户的权限一致,避免出现无权限访问的报错
  • 如果你之前在Laravel中配置过/api开头的路由,需要调整或删除这部分路由,避免优先级冲突
  • 修改配置后先清除浏览器缓存再测试,避免缓存的404结果影响验证

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 01:30:00