addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request));
});
async function handleRequest(request) {
const url = new URL(request.url);
// 指定目标反向代理的 URL
const targetUrl = `https://example.com${url.pathname}`;
// 创建一个新的请求
const modifiedRequest = new Request(targetUrl, {
method: request.method,
headers: request.headers,
body: request.body,
redirect: 'follow'
});
// 获取目标服务器的响应
let response = await fetch(modifiedRequest);
// 检查响应类型并重写内容
const contentType = response.headers.get('content-type') || '';
if (contentType.includes('text/html') || contentType.includes('text/css') || contentType.includes('application/javascript')) {
// 将响应内容转为文本
let text = await response.text();
// 替换内容:例如,将 example.com 替换为 yoursite.com
text = text.replace(/example\.com/g, 'yoursite.com');
// 返回修改后的响应
return new Response(text, {
status: response.status,
headers: response.headers
});
}
// 如果不是需要重写的类型,则直接返回原始响应
return response;
}
本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途。本站所有信息均来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权不妥之处请致信 E-mail:[email protected] 我们会积极处理。敬请谅解!
|