内容改写
内容改写:在节点上改写返回给访客的 HTML、CSS 和 JavaScript,包括链接改写、内容替换和强制 HTTPS,并提供规则测试器。
作用
节点在把页面返回给访客之前,按你设置的规则改写 HTML、CSS 和 JavaScript 的内容,源站不需要改动。
使用场景
- 网站换了域名,页面里还写着旧域名的链接,统一改成新域名。
- 把页面里写死的 http 链接改成 https,避免 HTTPS 页面里出现混合内容。
- 在不改源站代码的情况下替换一段文字或脚本地址。
在哪里配置
控制台:网站管理,内容改写。先选择网站,再管理它的规则。保存后发布生效。页面下方的“规则测试器”可以在发布前试运行。
配置项
页面上方设置“单响应改写上限”:默认 2 MiB,可设 64 KiB 到 16 MiB,超过的部分原样发送。每个网站最多 50 条规则,规则可以启用、停用和调整顺序。
通用字段
| 配置项 | 说明 |
|---|---|
| 名称 | 最多 64 个字符 |
| 类型 | 链接改写、内容替换、强制 HTTPS |
| 路径 | 规则生效的路径,最多 10 个;写前缀如 /blog/,含 * 时为通配,整条路径需匹配,如 /*.html;留空为全站 |
| 内容类型 | HTML、CSS、JavaScript,可多选 |
| 启用 | 开关 |
链接改写
| 配置项 | 说明 |
|---|---|
| 旧域名 | 最多 20 个,不带端口,如 old.example.com |
| 新域名 | 可带端口,如 www.example.com:8443 |
| 协议 | 保持原样、改为 https、改为 http |
HTML 里只改 href、src、srcset、action 属性中的链接;CSS 和 JavaScript 里只改写明的 http:// 与 https:// 链接。带端口的链接不改。
内容替换
| 配置项 | 说明 |
|---|---|
| 查找 | 要找的文字,最多 256 字节 |
| 替换为 | 最多 1024 字节 |
| 正则 | 开启后“查找”按正则处理 |
| 忽略大小写 | 仅对 ASCII 字母 |
正则支持的写法:用 {m,n} 表示重复次数(n 不超过 64),不用 *、+ 和 {n,};不使用 ^、$、\b 和嵌套重复;只接受 ASCII,匹配长度最长 512 字节。替换里用 $1 到 $9 引用分组,$$ 表示 $。
强制 HTTPS
| 配置项 | 说明 |
|---|---|
| 包含本站点域名 | 开启后本网站的域名也一并处理 |
| 额外域名 | 精确域名或 *.example.com(任意层子域,不含 example.com 本身),最多 50 个 |
把页面里这些域名的 http:// 链接改成 https://。
规则测试器
填写路径和内容类型,粘贴一段 HTML、CSS 或 JavaScript 原文(最大 256 KiB),点击“运行测试”,页面显示改写结果、命中几条规则、替换了几处。测试使用当前编辑中的规则(包括未保存的修改),在主控上按节点的同一算法运行,不会写入任何数据。
常见问题
开启后页面没有变化
先确认规则已保存并发布。命中缓存的页面在开启前缓存的压缩副本要等到过期或刷新缓存后才会被改写;网站压缩设置里没有勾选的类型,会以不压缩的形式发给访客。
路径怎么写
/blog/ 匹配这个前缀下的所有路径;/*.html 匹配以 .html 结尾的整条路径;留空表示全站。
提示节点不支持
该功能需要节点升级到支持的版本,发布页会列出需要升级的节点。
改写会影响 JavaScript 里的普通文字吗
链接改写只处理写明的 http:// 与 https:// 链接;内容替换则按你写的“查找”内容处理,建议先用测试器确认。