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

Laravel应用通过域名访问显示文件结构 无法展示站点内容如何解决

Laravel访问显示目录结构解决方法

出现该问题的核心原因是站点根目录未指向Laravel项目的public目录,同时伪静态配置缺失Laravel必需的重写规则,可按以下步骤调整:

1. 修改站点根目录配置

在Web服务器(Apache/Nginx)的站点配置中,将站点根目录(DocumentRoot)指向Laravel项目下的public文件夹,例如项目存放在/var/www/laravel路径下,则根目录需调整为/var/www/laravel/public。
该操作是Laravel运行的默认要求,同时可避免.env等敏感文件直接暴露在公网。

2. 替换正确的.htaccess配置

你当前的配置仅实现了HTTP跳HTTPS,缺少Laravel必需的入口重定向规则,将public目录下的.htaccess替换为以下内容:

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

    RewriteEngine On

    # 保留你原有HTTP跳转HTTPS规则
    RewriteCond %{SERVER_PORT} 80
    RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]

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

    # 静态文件直接访问,其余请求指向入口文件
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

3. 检查Apache必备配置

确保Apache已开启mod_rewrite模块,同时站点目录配置中开启了AllowOverride权限:

<Directory /你的Laravel项目完整路径/public>
    Options FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

修改完所有配置后重启Apache服务即可生效。

补充说明:如果使用的是共享虚拟主机,无权限修改站点根目录配置,可将public目录下的所有文件剪切到项目根目录,再修改根目录下index.php的路径引用:
把__DIR__.'/../vendor/autoload.php'改为__DIR__.'/vendor/autoload.php'
把__DIR__.'/../bootstrap/app.php'改为__DIR__.'/bootstrap/app.php'
同时将上述.htaccess文件放到项目根目录即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 19:54:05