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

问题描述

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

解决方法

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

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 文件。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...