Hot-link protection
Block other websites from linking to your content. This is useful for protecting images.
export default {async fetch(request) {const HOMEPAGE_URL = "https://tutorial.cloudflareworkers.com/";const PROTECTED_TYPE = "image/";// Fetch the original requestconst response = await fetch(request);// If it's an image, engage hotlink protection based on the// Referer header.const referer = request.headers.get("Referer");const contentType = response.headers.get("Content-Type") || "";if (referer && contentType.startsWith(PROTECTED_TYPE)) {// If the hostnames don't match, it's a hotlinkif (new URL(referer).hostname !== new URL(request.url).hostname) {// Redirect the user to your websitereturn Response.redirect(HOMEPAGE_URL, 302);}}// Everything is fine, return the response normally.return response;},};
const handler: ExportedHandler = {async fetch(request) {const HOMEPAGE_URL = "https://tutorial.cloudflareworkers.com/";const PROTECTED_TYPE = "image/";// Fetch the original requestconst response = await fetch(request);// If it's an image, engage hotlink protection based on the// Referer header.const referer = request.headers.get("Referer");const contentType = response.headers.get("Content-Type") || "";if (referer && contentType.startsWith(PROTECTED_TYPE)) {// If the hostnames don't match, it's a hotlinkif (new URL(referer).hostname !== new URL(request.url).hostname) {// Redirect the user to your websitereturn Response.redirect(HOMEPAGE_URL, 302);}}// Everything is fine, return the response normally.return response;},};export default handler;