首页 文章

网站换域名了搞 301 重定向老是出问题,想到用 CloudFlare Workers。

你可能会说,我用 Page Rules 他不香吗?但是请注意,免费版的 Page Rules 只有三条,而且转发一个域名就要占一条,香不起来啊。而 Workers 每天 10w 次请求,免费三十个,而且设置路由不会再多占任何项目,优点明显。

该工具特点如下:

  • 多规则匹配式,一个 Workers 搞定所有域名的转发
  • 超轻量
  • 转发类型默认为 301 重定向。
  • 除了替换域名实现转发外,也可以替换网址中的某个值。
  • 可以用于微信 QQ 防红、网址转发等目的。

1.实现方法

新建一个 Workers,将以下代码粘贴进代码框中。

/* @variable rules
 * @Use: 指定重定向的规则
 * @Usage: 详见 https://www.lzc256.com/archives/608
*/ 
const rules = [{"oldurl":".lzcapp.cn","newurl":".lzc256.com"},{"oldurl":".lzcapp.xyz","newurl":".lzc256.com"}];

async function handleRequest(request) {
  var url = request.url;
  for (var i = 0, l = rules.length; i < l; i++) {
    url = url.replace(rules[i].oldurl, rules[i].newurl);
  }
  return Response.redirect(new URL(url), 301);
}
addEventListener('fetch', async event => {
  event.respondWith(handleRequest(event.request))
});

按需更改 rules 常量,其类型为 JSON。

  • 其中,oldurl 是需要匹配的规则,newurl 是替换的规则
  • oldurl 也可以是对象类型(new RegExp('xxx'))的正则表达式。可以设置无限条规则。

2.rules 生成

对于不太会 JSON 的同学,我们提供了 rules 生成器。链接:[btnblue href="https://tools.lzc256.com/lzcCFW301Generator" target="blank"]lzcCFW301Generator[/btnblue]
此生成器存在问题,已经弃用。




文章评论

    fw 访客ChromeWindows
    2021-04-2 13:30   回复

    请问如何实现域名[a.123.com]跳转到[456.com]域名上呢?域名a.123.com还需要进行A解析吗?

      lzc256 站长ChromeMac
      2021-04-2 18:09   回复

      域名需要绑定到 CloudFlare,需要在 CloudFlare 里设置 A 解析到任意 IP,比如 8.8.8.8

    77 访客ChromeWindows
    2020-12-9 15:00   回复

    请问怎么绑定域名,还需要把域名CNAME解析到workers.dev 子域上吗?

      lzc256 站长ChromeWindows
      2020-12-9 17:42   回复

      不需要,只要域名在 cf 上就行了

    ljcbaby 访客ChromeWindows
    2020-10-25 9:25   回复

    rules 生成器 404了,是暂时的故障吗?

      lzc256 站长ChromeWindows
      2020-10-25 10:24   回复

      十分抱歉,这个生成器有点问题,现在弃坑了,忘了删除链接。假如您在配置上遇到困难,可以找我无偿解决

    徐艺扬 访客FireFoxWindows
    2020-09-13 21:06   回复

    按照您的配置文件部署会出现此页面不能正确地重定向的问题,去掉URL前的.即可解决问题。

      lzc256 站长ChromeWindows
      2020-09-17 17:21   回复

      这个脚本的初衷实际上是为了全级域名跳转 但是实现普通跳转其实也很简单。示例规则如下:

      [{"oldurl":"lzc256.com","newurl":"www.lzc256.com"}, {"oldurl":"tool.lzc256.com", "newurl":"tools.lzc256.com"}]

目录
TC