6

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

4

3 回答 3

5

基本上没有,但你可以用用户代理字符串做一些事情并禁止访问(假设是 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 标头可以根据最终用户的心血来潮设置为任何内容。

于 2011-07-04T09:49:38.857 回答
2

在我的来源中它是红色的:

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

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

于 2013-10-02T19:18:21.483 回答
0

站点地图.php

<?php

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

    if(strpos($host, ".googlebot.com") !== false){
        readfile("sitemap.xml");
    }else{
        header("Location: /");
    }
于 2011-07-04T10:05:05.293 回答