true, CURLOPT_FOLLOWLOCATION => true, CURLOPT_MAXREDIRS => 5, CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', CURLOPT_TIMEOUT => 20, CURLOPT_SSL_VERIFYPEER => false, CURLOPT_SSL_VERIFYHOST => false, CURLOPT_HTTPHEADER => [ 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Language: tr-TR,tr;q=0.9,en;q=0.8', 'Accept-Encoding: gzip, deflate', ], CURLOPT_ENCODING => '', // gzip auto-decode ]); $html = curl_exec($ch); $status = curl_getinfo($ch, CURLINFO_HTTP_CODE); $err = curl_error($ch); curl_close($ch); if (!$html || $status >= 400) { // Backend bilsin diye gercek status, body'de friendly icerik http_response_code($status >= 400 ? $status : 502); header('Content-Type: text/html; charset=UTF-8'); header('X-Proxy-Status: ' . $status); echo ''; echo 'Sayfa hazirlaniyor'; echo ''; echo '
TREK
'; echo '
🚲
'; echo '

Bu sayfa şu an goruntulenemiyor

'; echo '

Asistan sayfayi aramak icin yeniden deniyor...

'; echo ''; exit; } // tag injekte et ki relative URL'ler ve formlar dogru calisir $baseUrl = preg_replace('#(/[^/]*)$#', '/', $url); // dosya adini cikar $baseTag = ''; if (stripos($html, ']*>)#i', '$1' . $baseTag, $html, 1); } http_response_code(200); header('Content-Type: text/html; charset=UTF-8'); header('Cache-Control: public, max-age=300'); echo $html;