通过 Cloudflare Workers 实现 301 重定向

✨ 通过使用 Cloudflare Workers 实现 301 重定向,将域名 https://home.okhk.net 重定向到 https://i.okhk.net。创建 Workers 并编写代码以处理请求,设置重定向目标和状态码,最后配置自定义域名以完成重定向。

TOC

背景

我的个人主页部署在了 Cloudflare Pages 上,其绑定了 https://i.okhk.net 的域名,现在希望 https://home.okhk.net 能够重定向到 https://i.okhk.net 上去,但如果在 Pages 中直接增加绑定 home 域名,只能实现网页访问,并没有达成重定向到 i 域名。而尝试配置 CNAME 的 DNS 记录也行不通。但又不想因此引入 Nginx 来实现,故而想到使用 Cloudflare Workers 来实现。

💡
其实还可以通过 Cloudflare 的 规则 - 重定向规则 来快速配置的,此处是故意用 Workers 实现,属于是为了这醋包了顿饺子🥟。

步骤

新建 Workers

代码如下:

// 定义重定向目标 URL 和状态码
const REDIRECT_URL = "https://i.okhk.net/";
const REDIRECT_STATUS = 301; // 301 表示永久重定向,302 表示临时重定向

/**
 * 监听 fetch 事件,这是 Cloudflare Worker 的入口点
 */
addEventListener("fetch", (event) => {
  event.respondWith(handleRequest(event.request));
});


/**
 * 处理请求并返回重定向响应
 * @param {Request} request - 传入的请求对象
 * @returns {Response} 重定向响应
 */
async function handleRequest(request) {
  // 返回重定向响应
  return Response.redirect(REDIRECT_URL, REDIRECT_STATUS);
}

部署完成后即可通过形如 *.*. workers.dev 的域名来体验重定向效果了。

配置域名

增加自定义域名:home.okhk.net

此时再访问 https://home.okhk.net 即可重定向到 https://i.okhk.net 了。