CloudFlare的url转发相关介绍
在上一篇博文中,我介绍了页面规则,并展示了如何使用它来控制CloudFlare的功能,如应用程序、性能和安全设置。这里我将解释如何使用相同的Page Rules接口来启用URL转发。
对于许多早期CloudFlare用户来说,URL转发是一个令人惊讶的请求。一些主机提供商和注册商只对这项功能收费,这看起来很愚蠢。我们通常会向那些想要做URL转发的人提供如何通过HTACCESS进行转发的说明。当我们创建支持Page Rules的基础结构时,我们意识到现在可以以一种简单而强大的方式支持URL转发。
基本的例子
假设你有一个谷歌+的配置文件,你想让任何人都可以很容易地通过简单地访问一个URL:
www.example.com/ +
要设置转发,去页面规则管理页面,可以在设置菜单下找到你的CloudFlare我的网站页面上每个域旁边。创建一个模式来匹配你想要转发的URL:
* example.com/ +
这个模式将匹配:
http://example.com/+
http://www.example.com/+
https://www.example.com/+
https://blog.example.com/+
https://www.blog.example.com/+
等等……
它将不匹配:
http://www.example.com/blog/+[+前面的额外目录]
http://www.example.com+[无尾斜杠]
一旦我创建了匹配我想要的模式,单击转发开关。这暴露了一个字段,我可以在其中输入我想要转发的请求的地址。我的谷歌+配置文件在以下URL:
https://plus.google.com/117631136894743822101
如果我在转发框中输入它,并在几秒钟内单击Add Rule按钮,任何匹配我输入的模式的请求将自动以302重定向转发到新URL。它是光滑的。
先进的例子
基本转发对于像将流量重定向到谷歌+这样的事情很好,但是如果您想要做一些像强制所有流量到您的根域使用www子域这样的事情呢?如果您使用基本的重定向,那么您将丢失URL中的其他内容。
例如,你可以设置模式:
example.com *
并将其转发给:
www.example.com
但如果有人进来:
example.com/some-particular-page.html
然后它们会被重定向到:
www.example.com
不是你想让他们去的地方
www.example.com/some-particular-page.html
解决办法是使用变量。当可以在转发地址中引用时,每个通配符对应一个变量。变量用a表示
1,以引用使用$2的第二个通配符,依此类推。在上面的例子中,要修复从根到www的转发,你可以使用相同的模式:
example.com *
然后你需要设置以下URL来转发流量:
www.example.com 1美元
在这种情况下,如果有人去:
example.com/some-particular-page.html
它们将被重定向到:
www.example.com/some-particular-page.html
页面规则介绍:URL转发
或者,如果您想要一个比上面基本示例中描述的更强大的谷歌+转发器,您可以设置以下模式:
* example.com/ + *
把它转发到你的个人资料中,比如:
https://plus.google.com/117631136894743822101 2美元
注意URL结尾的$2,它表示上面模式中的第二个通配符(*)。然后,以下所有链接将正常工作:
http://example.com/+
http://example.com/+/posts
http://example.com/+/about
http://example.com/+/photos
http://example.com/+/videos
故障排除
如果你不能让转发正常工作,确保你从CloudFlare DNS管理器转发的子域(橙色云)是启用的。还要检查多个规则是否以意想不到的方式相互作用。规则的优先级将取决于它们创建的时间,因此,如果它们的行为不符合您的预期,您可能需要删除规则并以不同的顺序重新创建它们。
使用页面规则转发允许许多可能的情况,过去需要你在HTACCESS中创建复杂的重定向规则。试一试吧,如果你发现了强大的新功能,请在下面的评论中告诉我们。
对于许多早期CloudFlare用户来说,URL转发是一个令人惊讶的请求。一些主机提供商和注册商只对这项功能收费,这看起来很愚蠢。我们通常会向那些想要做URL转发的人提供如何通过HTACCESS进行转发的说明。当我们创建支持Page Rules的基础结构时,我们意识到现在可以以一种简单而强大的方式支持URL转发。
基本的例子
假设你有一个谷歌+的配置文件,你想让任何人都可以很容易地通过简单地访问一个URL:
www.example.com/ +
要设置转发,去页面规则管理页面,可以在设置菜单下找到你的CloudFlare我的网站页面上每个域旁边。创建一个模式来匹配你想要转发的URL:
* example.com/ +
这个模式将匹配:
http://example.com/+
http://www.example.com/+
https://www.example.com/+
https://blog.example.com/+
https://www.blog.example.com/+
等等……
它将不匹配:
http://www.example.com/blog/+[+前面的额外目录]
http://www.example.com+[无尾斜杠]
一旦我创建了匹配我想要的模式,单击转发开关。这暴露了一个字段,我可以在其中输入我想要转发的请求的地址。我的谷歌+配置文件在以下URL:
https://plus.google.com/117631136894743822101
如果我在转发框中输入它,并在几秒钟内单击Add Rule按钮,任何匹配我输入的模式的请求将自动以302重定向转发到新URL。它是光滑的。
先进的例子
基本转发对于像将流量重定向到谷歌+这样的事情很好,但是如果您想要做一些像强制所有流量到您的根域使用www子域这样的事情呢?如果您使用基本的重定向,那么您将丢失URL中的其他内容。
例如,你可以设置模式:
example.com *
并将其转发给:
www.example.com
但如果有人进来:
example.com/some-particular-page.html
然后它们会被重定向到:
www.example.com
不是你想让他们去的地方
www.example.com/some-particular-page.html
解决办法是使用变量。当可以在转发地址中引用时,每个通配符对应一个变量。变量用a表示
1,以引用使用$2的第二个通配符,依此类推。在上面的例子中,要修复从根到www的转发,你可以使用相同的模式:
example.com *
然后你需要设置以下URL来转发流量:
www.example.com 1美元
在这种情况下,如果有人去:
example.com/some-particular-page.html
它们将被重定向到:
www.example.com/some-particular-page.html
页面规则介绍:URL转发
或者,如果您想要一个比上面基本示例中描述的更强大的谷歌+转发器,您可以设置以下模式:
* example.com/ + *
把它转发到你的个人资料中,比如:
https://plus.google.com/117631136894743822101 2美元
注意URL结尾的$2,它表示上面模式中的第二个通配符(*)。然后,以下所有链接将正常工作:
http://example.com/+
http://example.com/+/posts
http://example.com/+/about
http://example.com/+/photos
http://example.com/+/videos
故障排除
如果你不能让转发正常工作,确保你从CloudFlare DNS管理器转发的子域(橙色云)是启用的。还要检查多个规则是否以意想不到的方式相互作用。规则的优先级将取决于它们创建的时间,因此,如果它们的行为不符合您的预期,您可能需要删除规则并以不同的顺序重新创建它们。
使用页面规则转发允许许多可能的情况,过去需要你在HTACCESS中创建复杂的重定向规则。试一试吧,如果你发现了强大的新功能,请在下面的评论中告诉我们。