dotfiles
My PC Dotfiles & Websitegit clone https://github.com/maydayv7/dotfiles
site/index.js (1383B)
1export default {
2 async fetch(request, env) {
3 const url = new URL(request.url);
4 if (url.hostname === "www.maydayv7.dev") {
5 url.hostname = "maydayv7.dev";
6 url.protocol = "https:";
7 return Response.redirect(url, 308);
8 }
9 // Curl
10 const userAgent = request.headers.get("User-Agent") || "";
11 if (userAgent.toLowerCase().startsWith("curl")) {
12 if (url.pathname === "/") {
13 url.pathname = "/curl.txt";
14 const response = await env.ASSETS.fetch(new Request(url, request));
15 const headers = new Headers(response.headers);
16 headers.append("Vary", "User-Agent");
17 return new Response(response.body, {
18 status: response.status,
19 headers,
20 });
21 }
22 }
23
24 // Serve Website
25 const response = await env.ASSETS.fetch(request);
26 if (
27 response.ok &&
28 /^\/processed_images\/[^/]+\.[a-f0-9]{16}\.[a-z0-9]+$/.test(url.pathname)
29 ) {
30 const headers = new Headers(response.headers);
31 headers.set("Cache-Control", "public, max-age=31536000, immutable");
32 return new Response(response.body, { status: response.status, headers });
33 }
34 if (url.pathname !== "/") return response;
35 const headers = new Headers(response.headers);
36 headers.append("Vary", "User-Agent");
37 return new Response(response.body, { status: response.status, headers });
38 },
39};