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

如何通过.htaccess实现子域名带掩码转发(地址栏保留子域名)

嘿,我来帮你搞定这个掩码转发的需求!要实现地址栏保持sub.domain.com但展示another.website.com的内容,有两种靠谱的方法,都可以通过cPanel里的.htaccess配置来实现,具体看你的主机环境支持哪种:

方法1:反向代理(推荐,体验更好)

如果你的cPanel主机开启了mod_proxy和mod_proxy_http模块(大部分主流主机默认都开了),这是最优解。它相当于让你的子域名作为目标网站的"代理",用户访问时完全感觉不到跳转,地址栏全程显示sub.domain.com。

在子域名sub.domain.com对应的.htaccess文件里(如果子域名绑定在主域名的子目录下,也可以在主域名的.htaccess里添加规则),加入以下配置:

# 启用反向代理实现掩码转发
RewriteEngine On
# 匹配sub.domain.com的请求
RewriteCond %{HTTP_HOST} ^sub\.domain\.com$ [NC]
# 将所有请求转发到目标网站,保持路径不变
RewriteRule ^(.*)$ http://another.website.com/$1 [P,L]
  • [P]标记告诉Apache用反向代理处理这个请求,而不是普通重定向
  • [L]表示这是最后一条规则,匹配后不再执行后续规则

如果配置后没生效,联系主机商确认是否开启了mod_proxy模块就行。

方法2:HTML框架(兼容无mod_proxy的主机)

如果你的主机不支持反向代理,用HTML iframe框架也能实现类似效果。步骤分两步:

  1. 先在sub.domain.com的根目录创建一个index.html文件,内容如下:
<!DOCTYPE html>
<html>
<head>
    <title>自定义页面标题</title>
    <style>
        /* 让iframe占满整个页面,隐藏边框和滚动条 */
        body, html { margin: 0; padding: 0; height: 100%; overflow: hidden; }
        #target-frame { width: 100%; height: 100%; border: none; }
    </style>
</head>
<body>
    <!-- 加载目标网站的内容 -->
    <iframe id="target-frame" src="https://another.website.com"></iframe>
</body>
</html>
  1. 然后在对应的.htaccess里添加规则,把所有请求指向这个index.html:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^sub\.domain\.com$ [NC]
RewriteRule ^(.*)$ /index.html [L]

这种方法的小缺点是:如果目标网站的链接用的是绝对路径(比如直接写https://another.website.com/page),用户点击后会跳出框架,地址栏变成目标域名;但如果是相对路径,就会在框架里正常打开。不过大部分场景下足够满足需求了。

注意事项

  • 修改.htaccess前最好备份一份,避免配置错误导致网站无法访问
  • 测试前清除浏览器缓存,或者用隐私模式打开,防止旧的重定向缓存干扰
  • 如果子域名是独立的虚拟主机,一定要找到它自己的.htaccess文件,不要误改主域名的(当然主域名的.htaccess加规则也能生效,但子域名单独管理更清晰)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:49:58