• 21-03-2019, 16:34:20
    #1
    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('');        }    }}
  • 22-03-2019, 09:17:03
    #2
    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.
  • 22-03-2019, 10:17:12
    #3
    HodriMeydan adlı üyeden alıntı: mesajı görüntüle
    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.
    Teşekkür ederim hocam, sabah dediğiniz yöntem aklıma geldi. Kapatılamayan bir popup açacağım kullanıcı diline göre uyarı açtıracağım bu şekilde erişim sağlatacağım. Hemde botlar sitede rahatça gezinecekler.

    R10+
  • 22-03-2019, 10:56:25
    #4
    celalyesil adlı üyeden alıntı: mesajı görüntüle
    Teşekkür ederim hocam, sabah dediğiniz yöntem aklıma geldi. Kapatılamayan bir popup açacağım kullanıcı diline göre uyarı açtıracağım bu şekilde erişim sağlatacağım. Hemde botlar sitede rahatça gezinecekler.

    R10+

    Rica ederim, aynen dediğiniz gibi /en & /ar gibi bir sayfaya gittiyse de doğru Hreflang uygulamalarıyla da sorunu tamamen çözüp en uygun SEO yöntemini uygulamış olursunuz.