热链保护 本文介绍如何使用边缘函数阻止其他网站盗链您的内容。 阻止其他网站盗链您的内容。 示例代码 javascript const HOMEPAGEURL " const PROTECTEDTYPE "image/" async function handleRequest(request) { // Fetch the original request const 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("ContentType") "" if (referer && contentType.startsWith(PROTECTEDTYPE)) { // If the hostnames don't match, it's a hotlink if (new URL(referer).hostname ! new URL(request.url).hostname) { // Redirect the user to your website return Response.redirect(HOMEPAGEURL, 302) } } // Everything is fine, return the response normally. return response } addEventListener("fetch", event > { event.respondWith(handleRequest(event.request)) }) 示例预览 当一个请求到达时,首先检查其ContentType是否是图像类型。 如果是图像类型,再检查 Referer头部是否指向当前域名。 如果 Referer头部指向的域名与当前域名不一致,则重定向到主页。 相关参考 运行时API:addEventListener 运行时API:FetchEvent 运行时API:Web Standards 运行时API:Fetch 运行时API:Response