更换域名之后原来散布在网上的各种链接会统统变成死链,如果就这么鲁莽地开一个新站的话,由于内容与原域名指向的内容重复,非常不利于 SEO。这种全站迁移的情况,不论是百度还是 Google 都建议用 301 永久重定向来告诉搜索引擎:我的内容换地方了!
本文适用情况:迁移站点,但是原域名无法解析到某个服务器端做跳转(比如原域名没有备案,无法解析到国内服务器,然而又不想买国外服务器……)。
几个名词解释
301 重定向
301 Move Permanently 是HTTP协议中的一个状态码(Status Code)。可以简单地理解为该资源已经被永久改变了位置,通常会发送HTTP Location来重定向到正确的新位置。
返回 301 请求码进行跳转被Google认为是将网站地址由 HTTP 迁移到 HTTPS 的最佳方法。
总的来说就是客户端在请求服务器资源时,比如一个 HTML 静态网页,服务器返回一个状态码告诉客户端,这个文件已经不在我这里了,你得去某某地儿找。这种方式对搜索引擎更友好,Google 在爬网页时,遇到了 301 就会自动去新位置索引,并逐渐降低原始链接的展现权重。
301 重定向与添加 CNAME 记录是不同的概念。CNAME 是 DNS 方面的概念,而 301 重定向是 HTTP 协议的概念。最明显的区别在于,301 重定向将改变地址栏的链接,而 CNAME 不会。
某些提供 DNS 解析的服务措辞可能引起歧义。比如 DNSPOD 在添加域名解析时提供「显性URL」,可以实现 301 跳转的效果,跟别的 DNS 解析设置放一起让人有些混淆。但这实际上并不是在搞域名解析服务,DNSPOD 也只是借助自己的服务器做了一个 301 跳转罢了。并且似乎 DNSPOD 的显性 URL 是付费项目,并且不支持通配符。
关于 CloudFlare
Cloudflare以向客户提供网站安全管理、性能优化及相关的技术支持为主要业务。通过基于反向代理的内容传递网络(ContentDeliveryNetwork,CDN)及分布式域名解析服务(DistributedDomainNameServer),Cloudflare可以帮助受保护站点抵御包括拒绝服务攻击(DenialofService)在内的大多数网络攻击,确保该网站长期在线,同时提升网站的性能、访问速度以改善访客体验。
总的来说,提供 CDN 和 DNS 服务,对许多博主来说应该都不陌生了。CloudFlare 的用法蛮多的,比如利用它来给自己的网站套上一层免费 SSL 等等。
设置方法
1、打开 CloudFlare 网站:www.cloudflare.com 。注册,登录。现在已支持简体中文:www.cloudflare.com/zh-cn/
2、点击 Add Websites,输入你要处理的域名。注意必须是顶级域名,比如 a.com
。
3、点击 Add Site,CloudFlare 会提示扫描域名的 DNS 记录。
4、点击 Next ,提示选择计划,选择第一个免费的(FREE)就可以。
5、点击 Comfirm Plan 确认,扫描完成后点 Continue。在 DNS 列表检查原域名的 DNS 记录是否都在,如果少的话自己手动添加就可以,然后点 Continue。
6、注意这一步很重要,CloudFlare 需要把域名的 DNS 服务器改成它们的。
CloudFlare 的域名服务器为(两条):
f1g1ns1.dnspod.net f1g1ns2.dnspod.net
在你的域名注册商那里就可以改,改完后点击 Continue,静待域名服务器更改生效。
已阿里云为例:打开域名控制台,点击域名后面的管理——DNS修改——修改DNS服务器,将记录修改成上面两条即可。
如图1显示 Active ,表示添加成功。
7、然后在 DNS 这一栏中查看 DNS 记录。将你要跳转的域名解析到一个有效的 IP,比如 8.8.8.8 。不要解析到国内的服务器 IP,否则依然会提示你没备案。
在这里,我要将 links.w3h5.com
跳转到 www.w3h5.com/links
。所以如图设置:
8、添加 Page Rules 。
Page Rules 是 CloudFlare 的一项特色服务,可以根据设定的匹配规则来对请求进行处理,其中就包括重定向,支持通配符匹配。
这里举例说明1,如果把 http://links.w3h5.com/xx
和 https://links.w3h5.com/xxxx
统统重定向到 https://www.w3h5.com/links
,就应该这样设置:
在 Page Rules 这一栏,点击 Create Page Rule。
第一项填要处理的 URL,这里我填 links.w3h5.com/*
。就是指不论是 HTTP 还是 HTTPS,域名是 links.w3h5.com/*
。
点击 Add A Setting,选择 Forwarding URL,Status Code 选择 301 。在下面输入要跳转到的 URL。destination这里我输入:https://www.w3h5.com/links
。结果如下:
举例说明2如果要把 www.w3h5.com/xxx
或者 www.w3h5.com/xxxx
全指向 w3h5.com/
。destination这里可以输入:https://w3h5.com/$1
。$1
是前面匹配出的字串,按顺序依次编号 $1
,$2
……。结果如下:
点击 Save and Deploy 就完事了。
注意如果添加多条 Page Rule 要注意前后顺序,CloudFlare 对每次访问只会按顺序执行符合的第一条 Rule。
CloudFlare 的其他用法以后看情况(心情)再介绍吧,祝搞机愉快。