现在Cloudflare中就有多种可以实现重定向功能的产品,包括:页面规则、批量重定向、动态重定向、Workers等,另外还有源站Apache中设置的.htaccess,比较复杂了,下面来说说如何识别当前起作用的是哪个环节以及这些环节起作用的顺序。
先来看《页面规则的未来》中的一幅Cloudflare流量顺序图:
上面的图是横着的,每个环节太小,看不清,再来看一幅竖着的中文图:
这就可以很清楚看到重定向的顺序是:页面规则、动态重定向、Workers、源服务器,但这个图中缺少了批量重定向。
那么如何开查看当前页面究竟使用的是哪个环节的重定向功能呢?可以在Chrome浏览器的页面中用右键点击Inspect(检查)打开Network(网络)选项,输入URL或者刷新页面,再查看Headers(头部)里面的Response Headers(响应头),就可以判断是哪个环节了,具体截图如下:
上面这是“动态重定向”规则起作用的301跳转的response headers,没有缓存状态,浏览器缓存被设置成固定的1小时(60 * 60 = 3600) cache-control: max-age=3600。
上面这是“批量重定向”规则起作用的301跳转的response headers,也没有缓存状态,浏览器缓存被设置成固定的1小时,但多了nel、report-to这些。
上面这是“页面规则”起作用的301跳转的response headers,与“批量重定向”规则是一样的。
再上面这种带有cf-cache-status的response headers就是来自源服务器htaccess的跳转。
最后这种带有php的就是来自源服务器上php程序进行的301跳转。
但我自己反复测试Cloudflare中的几个重定向功能,发现顺序是这样的:动态重定向、批量重定向、页面规则重定向,与官方网站的文章中写得不完全一样。我觉得这样也更合理。
评论1
学习了 301 原来是这么搞得
学习了 301 原来是这么搞得 我搞了半天