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

如何通过.htaccess禁止主域路径访问子站并实现HTTPS跳转

解决方案:同时实现域名隔离与HTTPS强制跳转

完全可以同时实现这两个需求,咱们只需要把域名隔离的规则和你现有的HTTPS跳转规则结合起来,放在每个子站点的.htaccess文件里就行。下面是具体的步骤和代码:

核心思路

我们要先判断请求的主机名是否是当前站点的独立域名:

  • 如果不是(比如用example.com/domains/mydomain1这种路径访问),直接返回403/404错误,阻止访问;
  • 如果是正常的独立域名访问,再执行你原有的HTTP转HTTPS规则。

具体配置(以mydomain1.com为例)

打开example.com/domains/mydomain1/.htaccess文件,替换成以下内容:

# 1. 禁止非独立域名访问,返回403错误(也可以改成404)
RewriteCond %{HTTP_HOST} !^(www\.)?mydomain1\.com$ [NC]
RewriteRule ^ - [R=403,L]

# 2. 原有HTTP转HTTPS跳转规则
RewriteCond %{HTTPS} off
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]

规则解释

  1. 域名隔离部分:

    • RewriteCond %{HTTP_HOST} !^(www\.)?mydomain1\.com$ [NC]:检查请求的主机名是否是mydomain1.com或www.mydomain1.com,!表示“不匹配”,[NC]表示不区分大小写(兼容大写域名的情况)。
    • RewriteRule ^ - [R=403,L]:如果上面的条件满足(即使用了非指定域名访问),直接返回403禁止访问;L表示停止执行后续规则,避免多余的跳转。
    • 如果你想返回404(让访问者误以为路径不存在),把R=403改成R=404即可。
  2. HTTPS跳转部分:

    • 这就是你原有的规则,只有当请求是HTTP且主机名正确时,才会执行跳转,完全不影响原有功能。

批量配置其他站点

对mydomain2.com及其他子站点,只需要复制上面的代码,把mydomain1\.com替换成对应的域名即可(比如mydomain2\.com)。

注意事项

  • 确保你的主机支持mod_rewrite模块(大部分主流托管服务商都默认开启);
  • 如果你的站点有其他Rewrite规则,把域名隔离的规则放在最顶部,优先执行,避免冲突。

这样配置后,任何人试图通过example.com/domains/mydomain1这种路径访问时,都会得到403/404错误,而通过mydomain1.com或www.mydomain1.com访问时,会自动跳转到HTTPS,完美满足你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:41:29