documentroot 本身不控制搜索引擎抓取,需配合 robots.txt、meta 标签、x-robots-tag 头及访问控制策略;其中 robots.txt 放于 documentroot 根目录并确保可公开访问,x-robots-tag 通过 apache header 指令强制设置更可靠,同时应限制 ip 访问或启用认证,并禁用 ip 直接访问以防泄露。

DocumentRoot 本身不负责控制搜索引擎抓取,它只是定义网站文件存放的物理路径。要防止搜索引擎索引测试环境页面,关键是在 DocumentRoot 对应的目录下配合使用 robots.txt、meta 标签 或 HTTP 头部,并辅以访问控制策略。
在 DocumentRoot 目录下放 robots.txt
这是最基础也最通用的方式。在你的 DocumentRoot(比如 /var/www/test)根目录中创建一个 robots.txt 文件,内容如下:
-
User-agent: *—— 匹配所有爬虫 -
Disallow: /—— 禁止抓取整个站点
注意:该文件必须可通过 HTTP 正常访问(例如 http://test.example.com/robots.txt),且不能被 Apache 的权限设置屏蔽(确保 AllowOverride All 或至少允许 Options 和 Limit 指令生效)。
用 Apache 配置强制返回 X-Robots-Tag 头
比 robots.txt 更可靠,因为它是服务器端强制声明,不依赖爬虫是否遵守规则。在对应虚拟主机或 <directory></directory> 块中添加:
Header set X-Robots-Tag "noindex, nofollow, noarchive"- 需启用
mod_headers模块(Ubuntu 下执行sudo a2enmod headers,CentOS 检查LoadModule headers_module是否启用) - 确保配置位于
<directory></directory>内,并重启 Apache 生效
限制访问来源,从源头减少暴露风险
测试环境不应对外公开。可在 DocumentRoot 对应的 <directory></directory> 块中做访问控制:
- 只允许可信 IP 访问:
Require ip 192.168.1.0/24 2001:db8::/32 - 或结合基本认证:
Require valid-user+AuthType Basic,避免测试页被意外发现 - 若测试环境已绑定独立域名(如
test.yoursite.com),务必禁用 IP 直接访问,防止被搜索引擎收录 IP 地址页
避免误操作导致泄露
常见错误会抵消防护效果:
- 不要把
robots.txt放错位置(必须在 DocumentRoot 根下,且路径大小写敏感) - 不要在
.htaccess中用Redirect把/robots.txt转走,否则爬虫收不到指令 - 确认没有在 HTML 中写
<meta name="robots" content="index,follow">覆盖了服务器端声明 - 测试环境域名不要解析到公网 DNS,更不要提交到搜索引擎站长平台











