资源重定向——让网页所有资源自动替换镜像
什么是资源重定向
普通 URL 重定向只替换浏览器直接访问的页面地址。但一个现代网页包含大量第三方资源——图片、JS 库、CSS 字体、字体文件、CDN 静态资源——这些资源的 URL 不受 URL 重定向影响。
资源重定向解决了这个问题:对网页中的所有资源请求也应用重定向规则。
启用方式
- 长按 设置按钮
- 选中"自定义资源重定向"
- 在全局重定向 URL 输入框里填入中间层地址(或留空只用 default.redirect)
- 强制清空后台重启 uWeb
两种资源重定向路径
全局重定向优先
如果全局重定向 URL 有效,资源重定向也走中间层:
原始请求 → 中间层 → 真实服务器 → 返回内容 → uWeb
这意味着所有资源请求都经由你信任的中间层代理,好处是:
- 不只是 HTML,图片、JS、CSS 也被代理
- 中间层可以做更多处理(如 CDN 缓存、内容改写)
- 代价是中间层必须稳定、可信、足够快
default.redirect 资源级应用
如果没有全局重定向,default.redirect 规则也会应用到资源请求上:
原始请求(如 fonts.googleapis.com/css → fonts.loli.net/css) → 直接访问镜像
这种方式更轻量,但每个资源替换规则需要你自己在 default.redirect 里配置。
为什么需要资源重定向
场景 1:Google Fonts 被墙
很多现代网页引用 fonts.googleapis.com 加载字体。在国内网络环境下这个域名通常无法直接访问,导致:
- 页面加载慢(浏览器会等待超时)
- 字体回退,视觉效果打折
- 某些 CSS 动画依赖 webfont,字体加载失败后动画异常
用资源重定向把 fonts.googleapis.com 替换为 fonts.loli.net 或其他国内镜像,问题瞬间解决。
场景 2:CDN 被墙
很多网站的 JS 库(jQuery、React、Vue 等)托管在 Google CDN、jsDelivr、unpkg 等域名上。在国内直接访问这些域名通常没问题,但在某些受限网络(校园网、公司网)可能被屏蔽。
场景 3:第三方 API 调用
某些 SPA 页面会在前端直接调用第三方 API。资源重定向可以拦截这些 API 请求,走中间层代理返回。
配合 default.resource.redirect(概念性文件)
虽然文档中主要提到的是 default.redirect,但实际实践中经常需要更精细的资源级重定向规则。如果你发现 default.redirect 不够用,可以:
- 在中间层里做更精细的资源替换(如 CF Workers/Pages 里写正则匹配)
- 或者用 siteextra/ 对特定域名的 HTML 源码做预处理,直接改写
<script src>和<link href>
对 file:// URL 的特殊处理
default.redirect 中如果对 file:// 协议的 URL 配置了重定向:
- 浏览器会自动调用合适的本地编辑器来打开这个文件
- 这在 Termux 环境下特别有用——可以实现"点击某个类型的文件就用对应 App 打开"
配置建议
- 先从 default.redirect 开始——配置少量高频域名的镜像替换
- 发现还是有资源加载慢?考虑部署全局重定向中间层
- 资源重定向开启后如果遇到某些网站异常,先关掉自定义资源重定向,看是不是中间层替换错了某些不该替换的内容
- 记住:全局重定向中间层可以看到你所有请求内容(包括 cookie),一定要用你信任的服务器
下一章
- CF Pages 部署 — 用 CF Pages 免费部署重定向中间层
- 全局重定向 — 回到全局重定向总览