繁体   English   中英

使用 Cloudflare Worker 重定向多个 URL

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM