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

如何实现全站域名所有变体SEO友好的301重定向至https://example.com

嘿,这个问题我之前帮不少开发者踩过坑,一站式搞定所有域名变体的301永久重定向(这可是SEO友好的核心要求)确实得把所有访问场景都覆盖到。下面给你整理了几种主流服务器/CDN的简便实现方案,直接抄作业就行:

1. Nginx 配置方案

如果你用的是Nginx,直接在你的服务器配置文件(比如/etc/nginx/sites-available/example.com)里添加以下规则,可放在主server块之前或单独创建server块:

# 处理 http://example.com 和 http://www.example.com
server {
    listen 80;
    server_name example.com www.example.com;
    return 301 https://example.com$request_uri;
}

# 处理 https://www.example.com
server {
    listen 443 ssl;
    server_name www.example.com;
    # 复用主站点的SSL证书配置(必填,否则浏览器会报错)
    ssl_certificate /path/to/your/cert.pem;
    ssl_certificate_key /path/to/your/key.pem;
    return 301 https://example.com$request_uri;
}

# 你的主站点核心配置
server {
    listen 443 ssl;
    server_name example.com;
    # 这里放站点根目录、反向代理等业务配置...
}

逻辑很直白:第一个server块接住所有HTTP端口的请求,不管带不带www都直接跳转到HTTPS主域名;第二个server块专门处理HTTPS的www子域名请求,同样走301永久重定向,确保没有遗漏场景。

2. Apache 配置方案

如果是Apache服务器,直接在网站根目录的.htaccess文件里添加以下规则(前提是服务器已经开启mod_rewrite模块):

RewriteEngine On

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

# 第二步:把带www的HTTPS请求转成不带www的主域名
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
RewriteRule ^(.*)$ https://example.com/$1 [L,R=301]

这个顺序很重要:先统一转到HTTPS,再处理www的跳转,不管用户是从http://wwwhttp://还是https://www进来,最终都会落到https://example.com上,R=301明确指定了永久重定向,完全符合SEO权重传递的要求。

3. Cloudflare 配置方案(懒人首选)

如果你用了Cloudflare作为CDN,完全不用改服务器配置,直接在Cloudflare后台设置页面规则就行:

  • 登录Cloudflare,进入你的域名管理页面,找到「规则」->「页面规则」
  • 创建新规则,输入匹配模式:*example.com/*
  • 添加设置:选择「转发URL」,转发类型选「永久重定向(301)」,目标URL填https://example.com/$1
  • 保存规则,等待生效(一般几分钟就会生效)

这个规则会自动匹配所有前缀(http/https、带不带www)的请求,直接跳转到目标地址,而且Cloudflare会帮你自动处理SSL证书的问题,全程不用碰服务器配置,非常省心。

几个关键注意点

  • 一定要用301永久重定向:这是搜索引擎认可的权重传递方式,临时重定向(302)不会传递SEO权重,千万别搞错。
  • 测试所有变体:配置完后,一定要手动测试http://example.comhttp://www.example.comhttps://www.example.com这几个地址,确保都正确跳转到https://example.com
  • SSL证书:如果是自己配置服务器,记得给www.example.com也配置SSL证书,不然用户访问https://www.example.com时会先看到浏览器安全警告,再跳转,体验很差。

内容的提问来源于stack exchange,提问作者Valentijn van den Hout

火山引擎 最新活动