Как использовать CloudFlare Workers для запуска JavaScript на периферии
Настройка воркера CloudFlare
Разработка кода перенаправления
addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request))
})
/**
* Respond to the request
* @param {Request} request
*/
async function handleRequest(request) {
// Redirect logic to go here
}
addEventListener('fetch', async event => {
event.respondWith(handleRequest(event.request))
})
async function handleRequest(request) {
let requestURL = new URL(request.url)
let path = requestURL.pathname.split('/redirect')[1]
switch (path) {
'/test1' {
let location = 'https://mysite.com/newlocation1'
break
}
'/test2' {
let location = 'https://mysite.com/newlocation2'
break
}
}
if (location) {
return Response.redirect(location, 301)
}
return fetch(request)
}
Улучшение сценария перенаправления
const redirectMap = new Map([
['/test1', 'https://mysite.com/newlocation1'],
['/test2', 'https://mysite.com/newlocation2'],
['/test3', 'https://mysite.com/newlocation3'],
['/test4', 'https://mysite.com/newlocation4'],
])
addEventListener('fetch', async event => {
event.respondWith(handleRequest(event.request))
})
async function handleRequest(request) {
let requestURL = new URL(request.url)
let path = requestURL.pathname.split('/redirect')[1]
let location = redirectMap.get(path)
if (location) {
return Response.redirect(location, 301)
}
return fetch(request)
}
Развертывание
Будущие возможности
Заключение