页面规则可将流量转发或重定向到其他 URL,但它只是 Cloudflare 提供的重定向方案之一。
使用页面规则配置 URL 转发或重定向:
-
在 Cloudflare 仪表板中,前往 Page Rules(页面规则) 页面。
Go to Page Rules ↗ -
选择 Create Page Rule(创建页面规则)。
-
在 If the URL matches(如果 URL 匹配) 下输入与该规则匹配的 URL 或 URL 模式。
-
在 Pick a Setting(选择设置) 下拉菜单中选择 Forwarding URL(转发 URL)。
-
在 Select status code(选择状态码) 中选择 301 - 永久重定向 或 302 - 临时重定向。
-
输入目标 URL。
-
选择 Save and Deploy Page Rule(保存并部署页面规则)。
假设你希望站点访客通过多种 URL 模式访问网站。例如,页面规则中的 URL 模式 *www.example.com/products 和 *example.com/products 匹配以下内容:
http://example.com/products
http://www.example.com/products
https://www.example.com/products
https://blog.example.com/products
https://www.blog.example.com/products但不匹配以下示例:
http://www.example.com/blog/products(额外目录)
或
http://www.example.comproducts(缺少斜杠)创建好符合你预期的匹配模式后,选择 Forwarding(转发) 开关。随后会显示一个输入框,用于填入请求要转发到的地址。
https://example.com/products如果你在转发框中输入上述地址并选择 Add Rule(添加规则),几秒内所有匹配该模式的请求将自动使用 HTTP 302 重定向状态码转发到新 URL。
如果你使用的是基础重定向,例如将根域名(example.com)转发到 www.example.com,则 URL 中的其他路径信息会丢失。
例如,你可设置以下模式:
example.com并将其转发到:
http://www.example.com但如果有人访问 example.com/some-particular-page.html,该请求会被重定向到:
www.example.com而不会重定向到:
www.example.com/some-particular-page.html可用变量解决该问题。每个通配符在转发地址中都对应一个变量。变量写法为 $(美元符号)加数字。第一个通配符使用 $1,第二个使用 $2,依次类推。
要修复上述 apex 到 www 的转发问题,可使用同样的模式:
example.com/*然后将转发目标设置为:
http://www.example.com/$1在此场景中,若有人访问:
example.com/some-particular-page.html将重定向到:
http://www.example.com/some-particular-page.html