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

.htaccess未实现HTTP转HTTPS跳转,子域丢失问题求助

问题
  • 当以HTTP而非HTTPS访问链接https://legacy.dhnn.com/wip/ypf/ruta-nube/ypf-ruta-contado.html时,子域名“legacy”会丢失。
  • 尝试配置.htaccess但无效,且wip目录下有大量网站,不想为每个站点单独创建.htaccess文件,询问是否可行。
  • 验证以下.htaccess代码是否正确:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^dhnn.com [NC]
RewriteRule ^(.*)$ http://legacy.dhnn.com/$1 [R=301,L]
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://legacy.dhnn.com/$1 [R,L]
分析与解决方案

现有代码的问题

  1. 重复声明RewriteEngine On:仅需开启一次即可,重复配置可能引发规则执行异常。
  2. 覆盖场景不完整:第一条规则仅处理裸域名dhnn.com的跳转,未覆盖直接访问http://legacy.dhnn.com的场景;第二条规则强制跳转到legacy.dhnn.com,会导致wip下其他子域名站点被错误重定向。
  3. 协议跳转不统一:第一条规则跳转后仍使用HTTP,未同步强制HTTPS,无法解决原问题中HTTP访问丢失子域名的核心问题。

优化后的统一配置(无需为每个站点单独创建.htaccess)

在主域名根目录的.htaccess中添加以下配置,即可同时解决子域名丢失、HTTP转HTTPS的问题,且兼容wip下所有站点:

RewriteEngine On

# 处理裸域名跳转至legacy子域名并强制HTTPS
RewriteCond %{HTTP_HOST} ^dhnn\.com$ [NC]
RewriteRule ^(.*)$ https://legacy.dhnn.com/$1 [R=301,L]

# 将所有HTTP请求转至对应HTTPS地址,保留原主机名(含子域名)
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

关键说明

  • 第一条规则针对用户访问裸域名dhnn.com的场景,强制跳转到legacy.dhnn.com并使用HTTPS,从源头避免子域名丢失。
  • 第二条规则通过%{HTTP_HOST}变量保留原请求的完整主机名(包括各种子域名),将所有HTTP请求统一转为HTTPS,无需为wip下每个站点单独配置。
  • 生产环境建议使用R=301永久重定向(利于SEO),测试阶段可改用R=302临时重定向,确认规则生效后再切换。
  • 确保服务器已启用mod_rewrite模块,否则规则无法执行。

内容的提问来源于stack exchange,提问作者Leandro Sebastián Ferrara

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 23:01:36