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

Laravel配置.htaccess移除www时错误跳转public_html路径问题

问题原因

跳转后带/public_html/index.php的核心原因是规则执行顺序错误:

  1. 站点根目录的.htaccess最先被Apache加载执行,你原来的配置会把所有请求直接重写到public_html/index.php
  2. 你把移除www前缀的301跳转规则放在了public_html目录下的配置文件里,等这条规则触发时,请求URI已经被加上了/public_html/前缀,跳转时自然会带出这个多余路径
  3. 原去www规则硬编码了http协议,没有适配HTTPS,会造成不必要的二次跳转。
修复步骤

1. 修改站点根目录的.htaccess

把去www的域名规范化规则放到所有重写规则的最前面,在请求被转发到public_html目录之前执行,就不会出现路径污染问题,直接替换为以下内容:

Options +SymLinksIfOwnerMatch
RewriteEngine On

# 最优先执行www移除规则
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L,QSA]

# 保留原有Installatron相关放行规则
RewriteCond %{REQUEST_FILENAME} deleteme\.\w+\.php
RewriteRule (.*) - [L] 

# 转发请求到public_html目录,静态文件直接返回不经过PHP解析
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ public_html/$1 [L]

注意:原根目录规则直接把所有请求转发给public_html/index.php,会导致css、js、图片等静态资源必须走PHP解析,性能差还可能出现路径错误,改成上面的目录转发写法可以直接返回静态资源,和Laravel官方推荐的服务器配置逻辑一致。

2. 修改public_html目录下的.htaccess

删除里面重复的去www规则,避免规则冲突,保留Laravel运行必要的原生规则即可,直接替换为以下内容:

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

    RewriteEngine On

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

    # 非目录路径移除末尾斜杠
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]

    # 请求转发到Laravel入口文件
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>
Hostinger环境额外注意事项
  • 改完配置后必须清除浏览器缓存、Hostinger面板自带的站点缓存,301是永久跳转,浏览器会长期缓存旧的跳转结果,不清缓存会看不到修改效果
  • 检查Hostinger面板「域名」-「重定向」页面有没有配置额外的www跳转规则,存在的话全部删除,避免和.htaccess规则冲突
  • 如果开启了Hostinger自带的Cloudflare CDN,需要同步清空CDN缓存后再测试
效果验证

配置完成后依次测试以下场景,确认跳转结果符合预期:

  • 访问http://www.mysite.com、https://www.mysite.com、http://mysite.com,最终都跳转到https://mysite.com
  • 访问任意内页比如www.mysite.com/about,最终跳转到https://mysite.com/about,不会出现/public_html路径、不会跳转到首页

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 07:48:56