Proxy DataEasy with a Cloudflare Worker
Create a Worker with the code below and add a route for yourdomain.com/de/* in Workers Routes.
worker.js
const SCRIPT = "https://dataeasy.app/js/script.js";
const EVENTS = "https://dataeasy.app/api/events";
export default {
async fetch(request, env, ctx) {
const url = new URL(request.url);
if (url.pathname === "/de/js/script.js") {
const cache = caches.default;
let response = await cache.match(request);
if (!response) {
response = await fetch(SCRIPT);
response = new Response(response.body, response);
response.headers.set("Cache-Control", "public, max-age=3600");
ctx.waitUntil(cache.put(request, response.clone()));
}
return response;
}
if (url.pathname === "/de/api/events" && request.method === "POST") {
const headers = new Headers(request.headers);
headers.set("X-Forwarded-For", request.headers.get("CF-Connecting-IP") ?? "");
return fetch(EVENTS, { method: "POST", headers, body: request.body });
}
return fetch(request);
},
};Update the script tag:
<script
defer
data-website-id="YOUR_WEBSITE_ID"
data-domain="yourdomain.com"
data-api-url="/de/api/events"
src="/de/js/script.js"
></script>