[英]Redirect multiple URLs using Cloudflare Worker
我有一个用例,我需要将多个子域重定向到它们各自的目的地,例如。 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/'
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.