Запретить доступ, но разрешить роботам, т.е. Google, на sitemap.xml - PullRequest
6 голосов
/ 04 июля 2011

Существует ли способ, при котором вы можете разрешить роботов, таких как Google, Yahoo или другие поисковые роботы, на мою карту сайта, расположенную по адресу http://www.mywebsite.com/sitemap.xml. Возможно ли запретить прямой доступ пользователю, но только роботам?

Ответы [ 3 ]

5 голосов
/ 04 июля 2011

Ну, в принципе, нет, но вы могли бы что-то сделать со строкой пользовательского агента и запретить доступ (при условии, что Apache)

<Location /sitemap.xml>
  SetEnvIf User-Agent GodBot GoAway=1
  Order allow,deny
  Allow from all
  Deny from env=!GoAway
</Location>

Но, как говорится, здесь (где я нашелсинтаксис)

Предупреждение:

Контроль доступа с помощью User-Agent является ненадежным методом, поскольку заголовок User-Agent может быть установлен на что угодно, по прихоти концапользователь.

1 голос
/ 02 октября 2013

Это в красном в моем источнике:

$ip = $_SERVER["REMOTE_PORT"];
$host = gethostbyaddr($ip);

if(strpos($host, ".googlebot.com") !== false){
    readfile("sitemap.xml");
}else{
    header("Location: /");

0 голосов
/ 04 июля 2011

sitemap.php

<?php

    $ip = $_SERVER["REMOTE_PORT"];
    $host = gethostbyaddr($ip);

    if(strpos($host, ".googlebot.com") !== false){
        readfile("sitemap.xml");
    }else{
        header("Location: /");
    }
...