我将我的站点地图存储在我的网络文件夹中。我希望网络抓取工具(Googlebot等)能够访问该文件,但我不一定希望所有人都可以访问它。
例如,此站点(stackoverflow.com)具有站点索引 - 由其robots.txt文件(https://stackoverflow.com/robots.txt)指定。
但是,当您输入https://stackoverflow.com/sitemap.xml时,系统会将您定向到404页面。
如何在我的网站上实现相同的功能?
我正在运行LAMP网站,我也在使用站点地图索引文件(因此我有多个站点地图)。我想使用相同的机制通过浏览器使它们不可用,如上所述。
答案 0 :(得分:0)
您可以检查客户端发送的用户代理标头,并仅将站点地图传递给已知搜索机器人。但是,这不是很安全,因为用户代理标头很容易被欺骗。
答案 1 :(得分:0)
Stack Overflow可能会在决定谁可以访问站点地图时检查两件事:
USER_AGENT
字符串两者都可能与已知合法机器人的数据库相匹配。
使用服务器端语言检查USER_AGENT
字符串非常容易;它也很容易伪造。更多信息:
有关如何检查USER_AGENT字符串Way to tell bots from human visitors?
有关IP检查Google的说明:Google Webmaster Central: How to verify Googlebot
相关:Allowing Google to bypass CAPTCHA verification - sensible or not?
答案 2 :(得分:0)
首先,确定您希望获得实际站点地图的网络。
其次,配置您的Web服务器以从这些网络为您的站点地图文件授予请求,并配置您的Web服务器以将所有其他请求重定向到您的404错误页面。
对于nginx,您希望将allow 10.10.10.0/24;
之类的内容粘贴到站点地图文件的location
块中。
对于apache,您希望在Allow
指令中使用mod_authz_host的<Files>
指令作为站点地图文件。