Поиск по сайту:

Как использовать 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)
}

Развертывание

Будущие возможности

Заключение