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

Laravel 5.6部署于子目录出现页面重定向异常求助

解决Laravel 5.6子目录部署的“页面未正确重定向”问题

我之前在子目录部署Laravel时也碰到过一模一样的重定向循环问题,给你几个实用的排查和修复步骤,应该能解决你的问题:

1. 先修正Laravel的核心配置

首先要确保Laravel知道自己部署在子目录下,这一步很关键:

  • 打开项目根目录的.env文件,把APP_URL改成你的实际访问地址,比如:
    APP_URL=http://your-domain.com/charity-frontmode
    
  • 再检查config/app.php里的'url'配置项,确保它是从.env读取的(默认是env('APP_URL', 'http://localhost')),不需要手动硬编码。

2. 重构根目录的.htaccess

你当前的根目录.htaccess是直接指向根目录的index.php,但Laravel的入口文件在public子目录里,所以需要把所有请求转发到public目录。替换根目录的.htaccess内容为:

<IfModule mod_rewrite.c>
    RewriteEngine On
    # 将所有根目录请求转发到public子目录
    RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

3. 调整public目录的.htaccess

你当前的public/.htaccess里的RewriteBase可能导致重定向循环,建议改成Laravel默认的标准配置(并移除多余的RewriteBase):

<IfModule mod_rewrite.c>
    Options -MultiViews -Indexes
    RewriteEngine On

    # 处理Authorization Header,避免API权限问题
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    # 移除URL末尾的斜杠(非目录的情况)
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)/$ /$1 [L,R=301]

    # 前端控制器规则,所有非文件/目录的请求都交给index.php处理
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

4. 确认Apache服务器配置

如果上面的步骤还没解决,要检查Apache是否允许.htaccess生效:

  • 找到你的虚拟主机配置文件(比如/etc/apache2/sites-available/your-site.conf),在对应的Directory块里设置:
    <Directory "/var/www/html/your-root-folder">
        AllowOverride All
        Require all granted
    </Directory>
    
  • 重启Apache服务使配置生效:
    sudo systemctl restart apache2
    

5. 清除Laravel缓存

最后别忘了清除Laravel的缓存,避免旧配置影响:

php artisan cache:clear
php artisan config:clear
php artisan route:clear

如果是生产环境,修复完成后可以运行php artisan config:cache重新生成配置缓存。

如果还是有问题,建议打开浏览器的开发者工具(Network标签),查看具体的重定向链路,看看请求是在哪个环节陷入了循环,这样能更精准定位问题~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 09:15:14