时间:2025-07-25加入收藏
// Target redirect address
const destinationLocation = 'https://www.example.com';
// HTTP status code, used for permanent redirects
const statusCode = 301;
// Async function used to handle requests
async function handleRequest(request) {
// Return a redirect response with the specified target location and status code.
return Response.redirect(destinationLocation, statusCode);
}
// Add a fetch event listener to intercept requests and respond using the handleRequest function.
addEventListener("fetch", event => {
event.respondWith(handleRequest(event.request));
});
在浏览器地址栏中输入匹配到边缘函数触发规则的 URL,在路径中携带/bar将实现到自动 301 重定向至 https://www.example.com/redirect2// 添加fetch事件监听器,当有请求进入时触发,使用handleRequest函数处理请求,并返回响应
async function handleRequest(request) {
// 定义目标外部主机名
const yourExternalHostname = "www.example.com";
// 创建路径到重定向URL的映射
const redirectMap = new Map([
["/foo", "https://" + yourExternalHostname + "/redirect1"],
["/bar", "https://" + yourExternalHostname + "/redirect2"],
["/baz", "https://" + yourExternalHostname + "/redirect3"],
]);
// 解析请求的URL
const url = new URL(request.url);
// 获取URL的路径部分
const path = url.pathname;
// 检查路径是否在重定向映射中,如果是则进行重定向
if (redirectMap.has(path)) {
return Response.redirect(redirectMap.get(path), 301);
} else {
// 如果路径不在映射中,返回404状态
return new Response('Not Found', { status: 404 });
}
}
// 当有请求事件发生时,使用handleRequest函数处理
addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request));
});
// 所有区域网址集
const urls = {
CN: 'https://www.example.com/zh-CN',
US: 'https://www.example.com/en-US',
};
// 默认重定向网址
const defaultUrl = 'https://www.example.com/en-US';
/**
* 根据当前请求所在的区域,重定向到目标网址
* @param { Request } request
*/
function handleRequest(request) {
// 获取当前请求所在区域
const alpha2code = request.eo.geo.countryCodeAlpha2;
// 重定向目标网址
const url = urls[alpha2code] || defaultUrl;
return Response.redirect(url, 302);
}
addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request));
});
TGA: 技巧