前言
当一个网站有多个域名时, 可以将次要域名301
重定向至主域名, 集中流量和搜索权重. 如果有尝试在浏览器直接输入www.yindan.me
, 发现会自动跳转到https://yindan.me
. 这里用到的就是301
重定向技术, 将带www
的二级域名跳转到不带www
的主域名.
301
重定向的方法有很多, 本文将介绍如何使用Cloudflare
实现网站301
永久重定向.
首先来了解一下关于重定向的一些基本知识:
重定向是什么
collapse title="点击展开 查看更多" status="false"重定向(Redirect)就是通过各种方法将各种网络请求重新定个方向转到其它位置(如: 网页重定向、域名的重定向、路由选择的变化也是对数据报文经由路径的一种重定向)/scode
简单的说就是让A
网页跳转至B
网页
重定向的 3 种方式
301 Redirect
301
是HTTP
协议中的一个状态码.301
重定向就表示A
网页永久性转移至B
网页.
其他常见的状态码: 200
(表示状态正常); 404
(网页不存在); 302
(临时性转移); 500
(内部程序错误).
302 Redirect
302
重定向表示A
网页暂时性转移至B
网页.Meta Refresh
Meta Refresh
是一种网页技术, 通过meta
指令使得当用户进入该页面时, 迅速自动跳转到另一个网页. 非常不推荐使用此方法!
301 重定向应用场景
- 更换域名时, 在旧域名上设置
301
重定向至新域名. 这样能将旧网站的流量引流到新网站, 保证用户体验的同时又不容易被搜索引擎降权. - 网址规范化
如将www.google.com
、blog.google.com
全部指向google.com
, 集中流量和搜索权重. - 网站目录结构改变
如google.com/img/xxx
变更为google.com/images/xxx
- 网页被永久移到一个新地址
如google.com/2333.php
变更为google.com/2333.html
http
重定向到https
使用 Cloudflare 设置 301 重定向
Cloudflare
的Page Rules
有着非常强大的功能, 免费套餐用户在每个域名下可以使用 3
条页面规则, 一般来说足够了(当然付费可以解锁更多条数).
下面我们就利用Cloudflare
的Page Rules
来实现网站的 301
重定向:
注册 Cloudflare 帐号
打开https://dash.cloudflare.com/sign-up
, 按照页面提示注册:
添加域名
登录账号, 进入主页, 点击+ Add a Site
进入到添加域名页面, 在此处填上你的域名, 点击Add site
. 注意必须为顶级域名, 形如: mywebsite.com
.
此时Cloudflare
会查询该域名当前的DNS
记录, 之后点击Next
:
选择FREE
免费计划, 下拉页面点击Confirm plan
确认:
弹出框选择Confirm
再次确认:
在接下来的页面会显示扫描到的DNS
记录结果, 确认后点击Continue
.
然后到你的域名注册商那里把域名服务器更改为Cloudflare
的域名服务器, 完成后回到Cloudflare
页面点击Continue
, 等待域名服务器生效.
添加 DNS 记录
登录Cloudflare
控制面板, 选择DNS
页面, 将你要跳转的域名解析到任意一个有效 IP, 这里直接用的Cloudflare
自家的DNS
服务器1.1.1.1
, 点击橙色云朵取消CDN
加速, 最后点击Add Record
完成DNS
添加:
添加 Page Rules
登录Cloudflare
控制面板, 进入Page Rules
页面, 点击Create Page Rule
创建一条页面规则:
这里演示的是:
将http://www.yindan.me/*
和 https://www.yindan.me/*
全部重定向到 https://yindan.me
.
第一行填写要跳转的起始网址www.yindan.me/*
, 表示HTTP
和HTTPS
协议都会处理. 后面的*
是通配符, 表示匹配任意字串.
点击Add A Setting
, 添加规则Forwarding URL
, 类型选择301 – Permanent Redirect
.
最后一行写上要跳转的目标网址https://yindan.me/$1
, $1
是前面*
匹配出的字串.
如图所示:
最后点击Save and Deploy
就OK
啦.
检测
重定向配置完成后, 不妨检测一下效果:
2 comments
学到了呀
Appreciate it. A good amount of posts.