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

Laravel 5.6 public目录下manager子目录路由访问异常求助

解决Laravel子目录下深层路由404问题

嘿,这个问题我之前也碰到过,核心原因是你复制到/public/manager下的index.php和.htaccess还在沿用根目录的配置,没有适配子目录的路径,导致Laravel无法正确解析深层路由。不用给每个路由建目录,只要修改这两个文件就行,具体步骤如下:

1. 修改 /public/manager/index.php

打开这个文件,调整两个关键路径:

  • 首先,把加载Laravel核心文件的路径从根目录适配到子目录:
    // 原来的代码
    require __DIR__.'/../bootstrap/app.php';
    // 修改为(往上多退一级到项目根目录)
    require __DIR__.'/../../bootstrap/app.php';
    
  • 然后,在$app = require_once...这行代码后面,添加一行代码指定当前子目录为Laravel的public路径:
    $app = require_once __DIR__.'/../../bootstrap/app.php';
    // 新增这行
    $app->bind('path.public', function() {
        return __DIR__;
    });
    

这一步是让Laravel知道现在的public根目录是/public/manager,而不是原来的/public。

2. 修改 /public/manager/.htaccess

找到文件里的RewriteBase配置,把它从根目录改成你的子目录路径:

// 原来的代码
RewriteBase /
// 修改为
RewriteBase /manager/

这会让Apache的重写规则基于/manager/这个前缀来处理请求,所有/manager/*的请求都会转发到/manager/index.php,由Laravel路由来解析,而不是Apache去查找静态目录。

验证效果

改完这两个文件后,你不用再创建list或者其他子目录,直接访问/manager/list就能正常触发你定义的路由了。

本质上,我们是让Laravel在子目录下重新“扎根”,通过调整核心文件路径和重写规则,让所有子目录下的请求都通过Laravel的路由系统处理,而不是依赖静态文件目录结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:58:28