celalyesil adlı üyeden alıntı: mesajı görüntüle
Merhaba,

Konunun yeri bura olarak düşündüm yanlışsa taşınabilir ilgili kategoriye

Bir web sitemde kullanıcı siteme yurtdışından giriyorsa, yurtdışı siteme yönlendiriyorum eğer TR'dense TR sitede kalıyor. Buraya kadar herşey tamam.

Ama aklıma biranda arama motorları crawler'ları geldi. Bunlar yurtdışından bağlanıyorlar ve ona göre tarıyorlar. Bunun için bir fonksiyon buldum eğer crawler ise hiç sorgulamadan siteyi gez diyorum ama normal kullanıcıysan bu sorgulamalar gir diyorum.

Burada sormak istediğim şu fonksiyon listemde aşağıdaki crawler var ama örneğin pagespeed yaptığımda TR siteyi yurtdışı sitenininkini yapıyor. Eğer böyle çalışıyorsa TR sitesine giren botlarda otomatik olarak yurtdışına yönleniyordur.

session_start();ob_start();function crawlerDetect($USER_AGENT){    $crawlers = array(        'Google' => 'Google',        'MSN' => 'msnbot',        'Rambler' => 'Rambler',        'Yahoo' => 'Yahoo',        'AbachoBOT' => 'AbachoBOT',        'accoona' => 'Accoona',        'AcoiRobot' => 'AcoiRobot',        'ASPSeek' => 'ASPSeek',        'CrocCrawler' => 'CrocCrawler',        'Dumbot' => 'Dumbot',        'FAST-WebCrawler' => 'FAST-WebCrawler',        'GeonaBot' => 'GeonaBot',        'Gigabot' => 'Gigabot',        'Lycos spider' => 'Lycos',        'MSRBOT' => 'MSRBOT',        'Altavista robot' => 'Scooter',        'AltaVista robot' => 'Altavista',        'ID-Search Bot' => 'IDBot',        'eStyle Bot' => 'eStyle',        'Scrubby robot' => 'Scrubby',        'Facebook' => 'facebookexternalhit',        'GTmetrix' => 'GTmetrix',        'Pagespeed' => 'Pagespeed',    );    $crawlers_agents = implode('|',$crawlers);    if (strpos($crawlers_agents, $USER_AGENT) === false)        return false;    else {        return TRUE;    }}$USER_AGENT = $_SERVER['HTTP_USER_AGENT'];if(!crawlerDetect($USER_AGENT)){    if(!isset($_COOKIE['visitorCountry'])) {        $request_uri    = 'https://ipfind.co';        $ip_address     = $_SERVER['REMOTE_ADDR'];        $auth           = 'xxxxxx';        $url            = $request_uri . "?ip=" . $ip_address . "&auth=" . $auth;        $document       = file_get_contents($url);        $result         = json_decode($document, true);        // print_r($result);        $visitorCountry = $result['country_code'];        $visitorLang    = $result['languages']['0'];        setcookie("visitorCountry", $visitorCountry, time() + (600*600*240));        setcookie("visitorLang", $visitorLang, time() + (600*600*240));        //header("Refresh:0");        echo '<meta http-equiv="refresh" content="0;URL=//'.$_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"].'">';        die();    }else{        $visitorCountry = $_COOKIE['visitorCountry'];        $visitorLang = $_COOKIE['visitorLang'];        if($visitorCountry == 'TR' || $visitorLang == 'tr-TR' ){            //   echo "xxxxx.com.tr";        }else{            $myCountries = array("tr-TR","en-TR","fa-IR","en-IR","en-EG","ar-EG","en-IQ","ar-IQ","en-MK","ru-MK","ar-MA","fr-MA","tr-AZ","ru-AZ","en-GE","ru-KZ","en-KZ","en-ME","ru-RU","en-RU","ar-SA","en-SA","de-DE","tr-DE","tr-CY","en-CY","ar-LB","en-LB","ar-QA","en-QA","ru-TM","en-TM","en-AL","en-MA","en-AZ","en-DE","en-ZA","en-KS","en-PK","nl-NL","en-NL","en-RO");            if(in_array($visitorLang, $myCountries)){                // echo $visitorLang .' - '.$visitorCountry;                echo '<meta http-equiv="refresh" content="0;URL=https://www.xxxxx.com/'.$visitorLang.'">';            }else{                // echo $visitorLang .' - '.$visitorCountry;                echo '<meta http-equiv="refresh" content="0;URL=https://www.xxxxx.com/">';            }            die('');        }    }}

Merhaba,


Bana göre en doğru yöntem oto redirect yerine x-default ile kullanıcıya hangi dili seçmek istediğini göstermek olacaktır.