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

Laravel 8:如何编程获取站点根目录的URL路径?

Laravel部署在子路径下获取站点根URL路径的方法

当你的Laravel站点部署在域名子路径下(比如https://example.com/my/news),需要获取对应根路径(如/my/news)时,可以用以下几种编程方式实现:

方法一:通过配置文件固定设置

如果部署的子路径是固定的,最稳妥的方式是通过配置定义:

  1. 在.env文件中添加子路径配置:
    APP_SUBPATH=/path_to_root
    
  2. 在config/app.php中新增对应配置项:
    'subpath' => env('APP_SUBPATH', ''),
    
  3. 代码中直接调用配置获取:
    $rootPath = config('app.subpath');
    

这种方式适合部署环境固定的场景,避免动态解析可能出现的异常。

方法二:从路由前缀获取

如果你的Laravel路由统一使用了前缀分组(比如Route::prefix('my/news')->group(...)),可以直接从当前路由实例获取前缀:

$rootPath = request()->route()->getPrefix();

注意:如果存在多层路由前缀嵌套,这个方法只会返回当前路由的直接前缀,需要根据实际路由结构调整。

方法三:动态解析当前站点根路径

如果需要自动适配不同部署环境的子路径,可以通过url('/')获取站点根URL后解析路径部分:

// 获取站点根URL(如https://example.com/my/news)
$rootUrl = url('/');
// 解析出路径部分
$rootPath = parse_url($rootUrl, PHP_URL_PATH);
// 去除末尾的斜杠(可选,根据需求调整)
$rootPath = rtrim($rootPath, '/');

这种方法不需要提前配置,能自动适配当前请求的环境,适合子路径可能变化的场景。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 13:20:35