-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.js
26 lines (23 loc) · 752 Bytes
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// redirect
const destinationURL = "https://developers.cloudflare.com/workers/about/"
const statusCode = 301
async function handleRequest(request) {
// check for cookie value cf-noredir
let cookie = request.headers.get('Cookie') || ""
if(cookie.includes("cf-noredir=true")) {
console.log("matched cookie")
return fetch(request)
}
// On User Agent
const userAgent = request.headers.get("User-Agent") || ""
if (userAgent.includes("curl")) {
console.log("matched user-agent")
return Response.redirect(destinationURL, statusCode)
}
// else
console.log("no match")
return fetch(request)
}
addEventListener("fetch", async event => {
event.respondWith(handleRequest(event.request))
})