< span style = “box-sizing: border-box! Important; color: RGB (74, 74, 74); line-height: 22px; font-size: 14px! Important; white-space: inherit! Important;”
1. Replace the domain name DNS resolution server of HelloWorld.com with CloudFlare’S DNS resolution service
-
rayne.ns.cloudflare.com
-
cosmin.ns.cloudflare.com
2. CloudFlare config CNAME record (helloworld.com → notion. So “)
Create a blog front page in python and get accessible linkswww.notion.so/hello-world…
4. Configure the Worker at CloudFlare
Then configure the script content of the version-worker
const MY_DOMAIN = "www.helloworld.com" const START_PAGE = "https://www.notion.so/hello-world-6f9db3734f914e6b8b247142b3dbac14" addEventListener('fetch', event => { event.respondWith(fetchAndApply(event.request)) }) const corsHeaders = { "Access-Control-Allow-Origin": "*", "Access-Control-Allow-Methods": "GET, HEAD, POST,PUT, OPTIONS", "Access-Control-Allow-Headers": "Content-Type", } function handleOptions(request) { if (request.headers.get("Origin") ! == null && request.headers.get("Access-Control-Request-Method") ! == null && request.headers.get("Access-Control-Request-Headers") ! == null) { // Handle CORS pre-flight request.return new Response(null, { headers: corsHeaders }) } else { // Handle standard OPTIONS request.return new Response(null, { headers: { "Allow": "GET, HEAD, POST, PUT, OPTIONS", } }) } } async function fetchAndApply(request) { if (request.method === "OPTIONS") { return handleOptions(request) } let url = new URL(request.url) let response if (url.pathname.startsWith("/app") && url.pathname.endsWith("js")) { response = await fetch(`https://www.notion.so${url.pathname}`) let body = await response.text() try { response = new Response(body.replace(/www.notion.so/g, MY_DOMAIN).replace(/notion.so/g, MY_DOMAIN), response) // response = new Response(response.body, response) response.headers.set('Content-Type', "application/x-javascript") console.log("get rewrite app.js") } catch (err) { console.log(err) } } else if ((url.pathname.startsWith("/api"))) { response = await fetch(`https://www.notion.so${url.pathname}`, { body: request.body, // must match 'Content-Type' header headers: { 'content-type': 'application/json; Charset = utf-8 ', 'the user-agent' : 'Mozilla / 5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36'}, method: "POST", // *GET, POST, PUT, DELETE, etc. }) response = new Response(response.body, response) response.headers.set('Access-Control-Allow-Origin', "*") } else if (url.pathname === `/`) { let pageUrlList = START_PAGE.split("/") let redrictUrl = `https://${MY_DOMAIN}/${pageUrlList[pageUrlList.length-1]}`return Response.redirect(redrictUrl, 301) } else { response = await fetch(`https://www.notion.so${url.pathname}${url.search}`, { body: request.body, // must match 'Content-Type' header headers: request.headers, method: request.method, // *GET, POST, PUT, DELETE, etc. }) } return response }Copy the code
Example blog: fruitionsite.com/