Cloudflare 重定向配置
最近把之前的一个网站域名换成另一个域名,想要添加一下重定向,避免流量流失(虽然本来就没流量)。然后在 Cloudflare 配置时尝试多次都失败了,遇到各种 Your connection is not private 或者 Webpage Temporarily Down or Moved Permanently 报错,还有跳到 404 页面等各种问题。最后终于解决,这里记录一下。
Cloudflare 重定向配置的几种方案
要在 Cloudflare 中配置重定向有非常多的方式,进入 Cloudflare 域名管理的 Rules 页面可以看到右侧有非常多的规则可供配置,其中有好几个可以实现重定向,这里挑最简单的 Page Rules 和 Redirect Rules 说一下。
Page Rules
Page Rules 算是比较早期的功能,免费额度较少只有 3 个,配置重定向只需要参考下图:

其中 * 和 $1 是使用通配符匹配 URL 的后缀并将其携带到新地址。配置过 Nginx 的应该都了解,也可以理解为简单的正则替换。
在清单页面可以进行规则的排序和开启关闭,规则从前到后依次应用,如果有规则冲突则需要注意排序问题。

Redirect Rules
Redirect Rules 是近期才推出的功能,专门用于解决重定向问题,所以使用起来可能会更好理解,配置可参考下图:

这里不需要写通配符,如果需要保留 URL 后缀通过勾选最下方的 Preserve query string 即可。
在清单页面同样可以进行排序和开启关闭操作。

另外 Cloudflare 还提供了 Bulk Redirects,可以用于批量重定向的配置,比如网站迁移后 URL 规则变更了,可能就需要使用类似的功能。
Header Modification 和 Workers
另外 Header Modification 可用于修改请求和响应的 Header 信息,理论上为 response headers 添加上 location 头也可以实现重定向的功能。
而 Workers 功能更强大,可直接拦截请求后返回 301 重定向,不过有一定上手成本。
问题原因
再说说我遇到的问题,其实问题的原因很简单,因为我忘记为被重定向的域名配置 DNS 了。Cloudflare 中的一系列功能其实是需要流量通过它的 Proxy 才能实现的,而如果没有为域名配置 DNS,请求发起时浏览器无法从 DNS 服务器获取到域名的 IP 地址,也就无法发出请求。
所以要实现重定向,我们可以想一下流量的走向:
- 首先浏览器拿到 URL 后对域名进行解析,所以这一步要求我们必须为被重定向的域名添加 DNS 记录。
- 浏览器拿到目标 IP 后发起请求,这里要注意如果拿到的不是 Cloudflare 的 IP,Cloudflare 就无法帮我们进行重定向的操作。所以这里要求我们为被重定向的域名添加的 DNS 记录必须开启了 Proxy 功能。
- 浏览器接收到返回的 HTTP response,进行重定向操作。
另外添加的 DNS 记录最好使用 CNAME 记录指向到目标域名,其中的问题是什么暂时我还没搞清楚。
Cloudflare 重定向配置的更多相关文章
- nginx重定向配置
# /etc/nginx/nginx.conf #写在server,location核心模块中,if也可以写.$http_host客户端设法要到达主机的主机名 if ($http_host !~ “^ ...
- Cloudflare DDoS配置案例
导航: 这里将一个案例事项按照流程进行了整合,这样查看起来比较清晰.部分资料来自于Cloudflare 1.DDoS介绍 2.常用DDoS攻击 3.DDoS防护方式以及产品 4.Cloudflare ...
- Nginx中的Rewrite的重定向配置与实践
阅读目录 一:理解地址重写 与 地址转发的含义. 二:理解 Rewrite指令 使用 三:理解if指令 四:理解防盗链及nginx配置 简介:Rewrite是Nginx服务器提供的一个重要的功能, ...
- SpringBoot(SpringMVC)使用addViewControllers设置统一请求URL重定向配置
只需要在配置中重写 addViewControllers方法 import org.springframework.context.annotation.Configuration; import o ...
- Yii2项目高级模版 三个模块在同一个目录下的重定向配置
最近做项目用到的,非常好用. 修改 advanced/backend/config/main.PHP 文件如下: return [ 'homeUrl' => '/admin', 'compone ...
- 【华为云网络技术分享】HTTP重定向HTTPS配置指南
[摘要] 本文介绍使用华为云弹性负载均衡配置Http重定向到Https的方法. 1. HTTP.HTTPS 头部标识 ELB 对 HTTPS 进行代理,无论是 HTTP 还是 HTTPS 请求,到了 ...
- 关于nginx配置的不完全总结
请参考官方: http://wiki.nginx.org/HttpRewriteModule#Synopsis 关于缓存大小权限 error log 有如下日志:an upstream respons ...
- 负载均衡集群之LVS配置命令
ipvs/ipvsadm 添加集群服务--> ipvsadm -A|E -t|u|f VIP[:Port] -s scheduler [-p timeout] [-O] [-M netmask] ...
- Haproxy 重定向跳转设置 - 运维小结
前面已经详细介绍了Haproxy基础知识 , 今天这里再赘述下Haproxy的重定向跳转的设置. haproxy利用acl来实现haproxy动静分离,然而在许多运维应用环境中,可能需要将访问的站点 ...
- .NET:强签名程序集的加载问题 之 版本重定向
背景 多数解决方案会包含多个项目,某些支持插件架构的解决方案中,更是包含多个插件项目,这些项目会使用一些第三方NuGet Packages,如果管理不慎,解决方案中会出现多个版本的引用,这在编译期间不 ...
随机推荐
- C# 从0到实战 变量的定义与使用
变量的定义 变量本质是一种内存的占位符,使得我们可以轻松操作计算机.C#的变量声明格式是: 类型 名称 = 值: 1 //.... 2 3 int val = 0; //定义并赋值 4 5 Conso ...
- 重新实现hashCode()方法
在Java中,为了让对象在集合中能够更高效地进行查找和比较,我们通常需要重写对象的equals()和hashCode()方法.其中,equals()方法用于比较两个对象是否相等,而hashCode() ...
- 关于Java中方法重载和方法重写
方法重写是子类继承父类(默认继承Object类)后覆盖父类的方法 需要保证同名 同参 同返回值 且访问权限范围不能缩小(public>protected>default>privat ...
- 一个.Net版本的ChatGPT SDK
ChatGPT大火,用它来写代码.写表白书.写文章.写对联.写报告.写周边...... 啥都会! 个人.小公司没有能力开发大模型,但基于开放平台,根据特定的场景开发应用,却是非常火热的. 为了避免重复 ...
- react中super()的理解
首先 super() 是在 es6的class(类)的方法创建组件出现 下面是分别是构造函数创建组件和class(类)创建组件 构造函数方法创建组件 在构造函数方法中,在组件接收参数的时候,props ...
- 2022-08-05:以下go语言代码输出什么?A:65, string;B:A, string;C:65, int;D:报错。
2022-08-05:以下go语言代码输出什么?A:65, string:B:A, string:C:65, int:D:报错. package main import ( "fmt&quo ...
- 2022-06-18:golang与 C++数据结构类型对应关系是怎样的?
2022-06-18:golang与 C++数据结构类型对应关系是怎样的? 答案2022-06-18: uintptr和unsafe.Pointer相当于c++的void*,也就是任意指针. uint ...
- 2021-07-18:最高的广告牌。你正在安装一个广告牌,并希望它高度最大。这块广告牌将有两个钢制支架,两边各一个。每个钢支架的高度必须相等。你有一堆可以焊接在一起的钢筋 rods。举个例子,如果钢筋
2021-07-18:最高的广告牌.你正在安装一个广告牌,并希望它高度最大.这块广告牌将有两个钢制支架,两边各一个.每个钢支架的高度必须相等.你有一堆可以焊接在一起的钢筋 rods.举个例子,如果钢筋 ...
- exclude查询时出掉或排除某个条件的信息
exclude查询时出掉或排除某个条件的信息 print(Student.objects.all().exclude(nickname='A')
- 深度学习基础入门篇[8]::计算机视觉与卷积神经网络、卷积模型CNN综述、池化讲解、CNN参数计算
深度学习基础入门篇[8]::计算机视觉与卷积神经网络.卷积模型CNN综述.池化讲解.CNN参数计算 1.计算机视觉与卷积神经网络 1.1计算机视觉综述 计算机视觉作为一门让机器学会如何去"看 ...