使用 Cloudflare Worker 重定向多个 URL



我有一个用例,我需要将多个子域重定向到它们各自的目的地,例如 alpha.domain.com -> www.domain.com/alpha 和 external.domain.com -> www.external.com。

我已经查找了这个 https://developers.cloudflare.com/workers/templates/pages/bulk_redirects/但是这迎合了路径重定向。我对如何修改它以适应我的用例一无所知。任何协助将不胜感激。

async function handleRequest(request) {
let requestURL = new URL(request.url)
let sourceURL = requestURL[1]
let destination = redirectMap.get(path)
if (requestURL) {
return Response.redirect(destination, 301)
}
}
addEventListener('fetch', async event => {
event.respondWith(handleRequest(event.request))
})
const redirectMap = new Map([
['alpha.domain.com', 'https://www.example.com/alpha/'],
['external.domain.com', 'https://www.example.com/'],   
])

您正在寻找requestURL.host要将它们放在一起,您将需要这样的东西:

async function handleRequest(request) {
let requestURL = new URL(request.url);
let destination = redirects[requestURL.host];
if (destination) {
return Response.redirect(destination, 301);
}
//determine what do do if there is no host match here
return Response.redirect('https://www.default.com', 301);
}
addEventListener('fetch', async event => {
event.respondWith(handleRequest(event.request))
})
const redirects = {
'alpha.domain.com' : 'https://www.example.com/alpha/',
'external.domain.com' : 'https://www.example.com/'
}

最新更新