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

如何编写IIS Rewrite规则实现HTTPS强制及多规范域名跳转?

搞定多规范域名的HTTPS强制跳转方案

当然可以!这种多域名+HTTPS强制跳转的需求太常见了,不管你用的是Nginx、Apache还是Cloudflare这类CDN,都能写出简洁易维护的规则来实现。下面分几种主流场景给你具体方案:

一、Nginx 配置方案(最灵活)

如果你的站点用Nginx,推荐用map指令来统一管理域名映射,避免重复写规则,后期维护也方便:

1. 先定义域名映射规则

在http块里添加这个map配置:

map $host $target_domain {
    default example.com;  # 默认跳转主域名
    example.com.au example.com.au;
    example.co.nz example.co.nz;
    example.us example.com;  # 非规范域名跳转主站
    www.example.com example.com;  # www前缀跳转到不带www的规范域名
    www.example.com.au example.com.au;
    www.example.co.nz example.co.nz;
}

2. 通用HTTP转HTTPS+规范域名规则

创建一个通用的server块处理所有HTTP请求,直接跳转至目标地址:

server {
    listen 80;
    listen [::]:80;
    server_name example.com example.com.au example.co.nz example.us www.*;

    return 301 https://$target_domain$request_uri;
}

3. HTTPS下的域名校正

如果用户直接访问了HTTPS但用了非规范域名(比如https://www.example.com),在HTTPS的server块里补充校正规则:

server {
    listen 443 ssl;
    listen [::]:443 ssl;
    server_name example.com example.com.au example.co.nz;

    # 填写你的SSL证书路径
    ssl_certificate /path/to/your/cert.pem;
    ssl_certificate_key /path/to/your/key.pem;

    # 校正非规范HTTPS请求
    if ($host != $target_domain) {
        return 301 https://$target_domain$request_uri;
    }

    # 站点基础配置(root、index、proxy_pass等)
    ...
}

二、Apache 配置方案

Apache用Rewrite模块就能搞定,在.htaccess或者虚拟主机配置里添加以下规则:

RewriteEngine On

# 第一步:强制所有请求走HTTPS
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# 第二步:校正域名(逐个处理)
# www前缀跳转至裸域名
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
RewriteRule ^(.*)$ https://example.com/$1 [L,R=301]

RewriteCond %{HTTP_HOST} ^www\.example\.com\.au$ [NC]
RewriteRule ^(.*)$ https://example.com.au/$1 [L,R=301]

RewriteCond %{HTTP_HOST} ^www\.example\.co\.nz$ [NC]
RewriteRule ^(.*)$ https://example.co.nz/$1 [L,R=301]

# 非规范域名跳转至主站
RewriteCond %{HTTP_HOST} ^example\.us$ [NC]
RewriteRule ^(.*)$ https://example.com/$1 [L,R=301]

如果想更精简,也可以用RewriteMap在Apache主配置里统一管理域名映射,但需要服务器管理员权限操作。

三、Cloudflare 页面规则方案(无需修改服务器)

如果你用Cloudflare托管域名,直接用页面规则就能一键搞定,完全不用碰服务器配置:

  • 规则1:强制HTTPS

    • 匹配URL:*example.com/*, *example.com.au/*, *example.co.nz/*, *example.us/*
    • 设置:开启Always Use HTTPS
  • 规则2:域名校正跳转

    • 针对www.example.com/*,设置Forwarding URL为301永久跳转至https://example.com/$1
    • 针对example.us/*,设置Forwarding URL为301永久跳转至https://example.com/$1
    • 同理给www.example.com.au/*和www.example.co.nz/*配置对应跳转规则

几个关键注意事项

  • SSL证书:确保你的证书覆盖所有用到的域名(包括非规范域名),可以选择通配符证书(如*.example.com)或多域名SAN证书。
  • 跳转类型:测试阶段用302临时跳转验证规则,确认无误后改成301永久跳转,避免影响SEO。
  • 缓存清理:测试前一定要清空浏览器缓存,旧的跳转记录会干扰测试结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:39:32