php paletli algılama

2 Cevap php

Ben farklı arayan kim bağlı olarak hareket eden bir sitemap.php yazmaya çalışıyorum.

Ben en güncel sayfa olacak ve ihtiyaç duydukları tüm bilgileri içerecek şekilde, benim sitemap.xml için tarayıcıları yönlendirmek istiyorum, ama benim düzenli okuyucuları php sayfada bir html site haritası göstermek istiyorum.

Bu, tüm php başlık içinde kontrol edilecek, ve ben bunun görünüyor tarafından çalışmalıdır web this code bulduk, ama öyle değil. Herkes benim için bu çatlak yardımcı olabilir?

function getIsCrawler($userAgent) {
    $crawlers = 'firefox|Google|msnbot|Rambler|Yahoo|AbachoBOT|accoona|' .
    'AcioRobot|ASPSeek|CocoCrawler|Dumbot|FAST-WebCrawler|' .
    'GeonaBot|Gigabot|Lycos|MSRBOT|Scooter|AltaVista|IDBot|eStyle|Scrubby';
    $isCrawler = (preg_match("/$crawlers/i", $userAgent) > 0);
    return $isCrawler;
}

$iscrawler = getIsCrawler($_SERVER['HTTP_USER_AGENT']);

if ($isCrawler) {
    header('Location: http://www.website.com/sitemap.xml');
    exit;
} else {
    echo "not crawler!";
}

Bu oldukça basit görünüyor, ama gördüğünüz gibi ben ajan listesine firefox ekledik ve emin yeterli yönlendiriliyorsunuz değilim ..

Herhangi bir yardım için teşekkür ederiz :)

2 Cevap

Eğer kodda bir hata var:

$crawler = getIsCrawler($_SERVER['HTTP_USER_AGENT']);

olmalıdır

$isCrawler = getIsCrawler($_SERVER['HTTP_USER_AGENT']);

Eğer size bildirimler geliştirirseniz çok daha kolay bir şekilde bu hataları yakalayacağız.

Ayrıca, olası istediğiniz exit sonra header

Warning: Cloaking, arama sağlayıcıları ile belaya girebilir. This article açıklıyor.