通过 Cloudflare Workers 实现 301 重定向

status
Published
type
Post
slug
config-301-redirect-by-cloudflare-workers
date
Jan 27, 2024
tags
Cloudflare
Config
Share
Script
summary
通过使用 Cloudflare Workers 实现 301 重定向,将域名 https://home.okhk.net 重定向到 https://i.okhk.net。创建 Workers 并编写代码以处理请求,设置重定向目标和状态码,最后配置自定义域名以完成重定向。

背景

我的个人主页部署在了 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

notion image
代码如下:
// 定义重定向目标 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 的域名来体验重定向效果了。

配置域名

notion image
notion image
增加自定义域名:home.okhk.net
 
此时再访问 https://home.okhk.net 即可重定向到 https://i.okhk.net 了。