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

cPanel上传Laravel项目至子文件夹后报403错误如何解决?

Laravel cPanel子文件夹部署403错误修复方案

核心原因

你当前的部署方式没有正确指向Laravel的入口目录,Laravel默认的公开访问入口是项目根目录下的public文件夹,直接在项目根目录放置原生Laravel public的.htaccess会因为找不到入口文件触发403权限错误。

修复步骤(二选一即可)

方案1:安全部署(推荐,避免源码泄露)

  • 将public_html/lrvproject下除了public文件夹的所有内容,移动到和public_html同级的目录(比如命名为lrvproject_core,该目录无法被公网直接访问,更安全)
  • 将lrvproject/public下的所有文件剪切到public_html/lrvproject目录下
  • 打开public_html/lrvproject/index.php,修改两处路径引用:
// 原代码
require __DIR__.'/../vendor/autoload.php';
$app = require_once __DIR__.'/../bootstrap/app.php';
// 修改为
require __DIR__.'/../../lrvproject_core/vendor/autoload.php';
$app = require_once __DIR__.'/../../lrvproject_core/bootstrap/app.php';
  • 给lrvproject_core/storage和lrvproject_core/bootstrap/cache目录设置755权限。

方案2:保留现有目录结构快速修复

直接替换public_html/lrvproject下的.htaccess内容为以下配置:

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

RewriteEngine On
RewriteBase /lrvproject/

# 处理授权头
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

# 非文件、非目录请求重写到public入口
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ public/index.php [L]

# 移除末尾斜杠
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
</IfModule>
  • 保留lrvproject/public目录下原生的.htaccess文件不要修改
  • 给lrvproject/storage和lrvproject/bootstrap/cache目录设置755权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 11:48:04