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

Rewrite links

Rewrite URL links in HTML using the HTMLRewriter. This is useful for JAMstack websites.
const OLD_URL = 'developer.mozilla.org';
const NEW_URL = 'mynewdomain.com';

async function handleRequest(req) {
  const res = await fetch(req);
  const contentType = res.headers.get('Content-Type');

  // If the response is HTML, it can be transformed with
  // HTMLRewriter -- otherwise, it should pass through
  if (contentType.startsWith('text/html')) {
    return rewriter.transform(res);
  } else {
    return res;
  }
}

class AttributeRewriter {
  constructor(attributeName) {
    this.attributeName = attributeName;
  }
  element(element) {
    const attribute = element.getAttribute(this.attributeName);
    if (attribute) {
      element.setAttribute(this.attributeName, attribute.replace(OLD_URL, NEW_URL));
    }
  }
}

const rewriter = new HTMLRewriter()
  .on('a', new AttributeRewriter('href'))
  .on('img', new AttributeRewriter('src'));

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