拒绝直接访问 sitemap.xml(仅允许搜索机器人)

Posted

技术标签:

【中文标题】拒绝直接访问 sitemap.xml(仅允许搜索机器人)【英文标题】:Deny direct access to sitemap.xml (Allow only search bots) 【发布时间】:2021-06-30 21:37:29 【问题描述】:

我在 Apache 2.4 上,需要限制用户对 sitemap_index.xml 的直接访问,只允许已知的机器人访问站点地图,你能帮我用一些 .htaccess 规则吗?

【问题讨论】:

【参考方案1】:

您可以添加一个规则,根据正在使用的用户代理阻止对站点地图的访问,这当然不是很安全,因为用户总是可以将用户代理设置为其他内容,但这可能适用于您的特定情况:

RewriteEngine On
# Check so we have a user-agent equal to 'googlebot'
RewriteCond %HTTP_USER_AGENT !googlebot$ [NC]
# If the user-agent is not correct we return a 403: Forbidden
RewriteRule ^sitemap\.xml - [F,L]

您可以简单地更改上述条件以包含您想要包含的任何用户代理,例如:

RewriteCond %HTTP_USER_AGENT !^(googlebot|spider|foo)$ [NC]

以上将允许用户代理设置为 googlebot、spider 或 foo 的请求访问 sitemap.xml 文件。

【讨论】:

以上是关于拒绝直接访问 sitemap.xml(仅允许搜索机器人)的主要内容,如果未能解决你的问题,请参考以下文章

百度添加Sitemap.xml提示“索引型不予处理”的解决办法

爬虫的两大重要文件:robots.txt和sitemap.xml

什么是sitemap?

php生成sitemap.xml地图文件

php生成sitemap.xml地图文件

php生成sitemap.xml地图文件