拒绝访问,但允许机器人,即谷歌到sitemap.xml

时间:2011-07-04 09:40:15

标签: web-crawler robot

是否有一种方法,您只能允许Google,Yahoo或其他搜索引擎漫游器等机器人访问位于http://www.mywebsite.com/sitemap.xml的站点地图。这可能是不允许用户直接访问但只允许机器人吗?

3 个答案:

答案 0 :(得分:5)

基本上没有,但是您可以使用user-agent字符串执行某些操作并禁止访问(假设Apache)

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

但正如它所说here(我找到了语法)

  

警告:

     

User-Agent的访问控制是一个   不可靠的技术,因为   User-Agent标头可以设置为   什么都有,随心所欲   最终用户。

答案 1 :(得分:1)

我的来源是Red:

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

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

答案 2 :(得分:0)

<强> sitemap.php

<?php

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

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