如何利用Cloudflare为符合条件的URL添加末尾斜杠?
Cloudflare自动为符合条件的URL添加末尾斜杠方案
核心逻辑
只对无查询参数、非文件路径、末尾无斜杠的URL添加末尾斜杠,完全避开带参数的URL(如www.example.com/blog?campaign_URL=mycampaignparam)和文件类URL(如www.example.com/css/stylesheet.css)。
具体配置步骤
- 登录Cloudflare控制台,进入你的域名管理页,选择「规则」→「转换规则」→「URL重写」,点击「创建规则」。
- 规则名称:自定义一个好记的名字,比如「为目录URL添加末尾斜杠」。
- 匹配条件:设置三个必须同时满足的条件(逻辑关系选「AND」):
- 字段选「Request → URL → Query」,运算符选「Does not exist」—— 排除带查询参数的URL
- 字段选「Request → URL → Path」,运算符选「Matches regex」,输入正则表达式
^[^.]+$—— 匹配路径中不含小数点的URL(排除带文件后缀的路径) - 字段选「Request → URL → Path」,运算符选「Does not end with」,输入
/—— 排除已经带末尾斜杠的URL
- 重写动作:
- 动作类型选「Rewrite URL → Path」
- 重写方式选「Set to」,输入表达式
concat(http.request.uri.path, "/")—— 将原路径拼接上末尾斜杠
- 保存规则,完成配置。
测试验证
配置完成后,分别测试以下场景:
- 访问
www.example.com/blog,应自动跳转为www.example.com/blog/ - 访问带参数的
www.example.com/blog?campaign=test,路径保持不变 - 访问文件类URL
www.example.com/js/main.js,路径保持不变
注意事项
- 配置前可以先用Cloudflare规则的「预览」功能测试匹配结果,避免误匹配导致页面失效
- 如果有特殊路径不需要添加斜杠(比如某些无后缀的动态页面),可以在匹配条件中添加「Path does not equal /xxx」的排除项
内容的提问来源于stack exchange,提问作者user20510340
相关产品推荐
相关产品推荐

