听起来目前,您的域domain.com
设置为重定向。当用户domain.com
在浏览器中访问时,服务器 (Cloudflare) 会回复一条消息:“请转至anotherdomain.com/path
。” 然后浏览器的行为就像用户anotherdomain.com/path
在地址栏中实际键入的一样。
听起来您想要的是domain.com
成为代理。当请求进入时domain.com
,您希望 Cloudflare 从中获取内容anotherdomain.com/path
,然后返回该内容以响应原始请求。
为此,您需要使用 Workers。Cloudflare Workers 允许您编写任意 JavaScript 代码来告诉 Cloudflare 如何处理您的域的 HTTP 请求。
这是一个实现您想要的代理行为的 Worker 脚本:
addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request))
})
async function handleRequest(request) {
// Parse the original request URL.
let url = new URL(request.url);
// Change domain name.
url.host = "anotherdomain.org";
// Add path prefix.
url.pathname = "/path" + url.pathname;
// Create a new request with the new URL, but
// copying all other properties from the
// original request.
request = new Request(url, request);
// Send the new request.
let response = await fetch(request);
// Use the response to fulfill the original
// request.
return response;
}