Cloudflare Docs
Workers
Visit Workers on GitHub
Set theme to dark (⇧+D)

Country code redirect

Redirect a response based on the country code in the header of a visitor.
/**
 * A map of the URLs to redirect to
 * @param {Object} countryMap
 */
const countryMap = {
  US: 'https://example.com/us',
  EU: 'https://eu.example.com/',
};

/**
 * Returns a redirect determined by the country code
 * @param {Request} request
 */
function redirect(request) {
  // Use the cf object to obtain the country of the request
  // more on the cf object: https://developers.cloudflare.com/workers/runtime-apis/request#incomingrequestcfproperties
  const country = request.cf.country;

  if (country != null && country in countryMap) {
    const url = countryMap[country];
    return Response.redirect(url);
  } else {
    return fetch(request);
  }
}

addEventListener('fetch', event => {
  event.respondWith(redirect(event.request));
});