问题描述
我使用的是 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 文件。