登录
首页 >  文章 >  php教程

PHP部署测试站,如何屏蔽搜索引擎?

时间:2026-02-09 12:09:05 247浏览 收藏

推广推荐
下载万磁搜索绿色版 ➜
支持 PC / 移动端,安全直达

最近发现不少小伙伴都对文章很感兴趣,所以今天继续给大家介绍文章相关的知识,本文《PHP部署测试站,如何禁止搜索引擎抓取?》主要内容涉及到等等知识点,希望能帮到你!当然如果阅读本文时存在不同想法,可以在评论中表达,但是请勿使用过激的措辞~

最直接线上测试站防收录方案是三重防护:robots.txt全站禁止抓取、PHP页面加noindex meta标签、HTTP响应头设X-Robots-Tag noindex,nofollow,再配合子域名隔离与基础访问控制。

php怎么部署线上测试站_不让搜索引擎抓取要加啥规则【操作】

robots.txt 里禁止所有爬虫抓取最直接

线上测试站不希望被搜索引擎收录,robots.txt 是第一道防线,且生效快、无需服务端逻辑干预。它不能阻止访问,但主流搜索引擎(Google、Bing、百度)会遵守。

在网站根目录(如 /var/www/html/)放一个 robots.txt 文件,内容如下:

User-agent: *
Disallow: /

注意:User-agent: * 匹配所有爬虫;Disallow: / 表示禁止抓取整个站点。如果只想屏蔽部分路径(比如后台或 API),可写成 Disallow: /admin/Disallow: /api/

  • 不要写错文件名——必须是小写 robots.txt,放在域名根路径下(https://test.example.com/robots.txt 必须可访问)
  • Apache/Nginx 默认允许访问该文件;若用了重写规则(如 Laravel 的 .htaccess 或 Nginx 的 try_files),要确保 robots.txt 不被重写或拦截
  • 百度等国内引擎对 robots.txt 解析较保守,建议搭配后续的 metaheader 方案

PHP 页面里加 noindex meta 标签防页面级索引

仅靠 robots.txt 无法阻止已知 URL 被手动提交或通过外链进入索引,所以每个 PHP 页面的 中应插入 meta 告诉爬虫“别索引我”。

在模板或公共 header 文件中加入:

<meta name="robots" content="noindex, nofollow">

这个标签对 Google、Bing、百度都有效。注意不是 content="none"(已废弃),也不是只写 noindex(建议同时加 nofollow 避免爬虫顺着测试页链接爬到其他环境)。

  • 如果用的是框架(如 ThinkPHP、Laravel),可在布局视图(layout.blade.php / layout.html)统一注入,避免漏掉某一页
  • 动态生成的页面(如 index.php?debug=1)也建议判断环境变量(如 $_SERVER['APP_ENV'] === 'testing')再输出该标签
  • 这个标签只影响单页,不阻断爬虫访问,也不替代 robots.txt

HTTP 响应头加 X-Robots-Tag 更彻底

当页面是动态生成、或需对非 HTML 资源(如 PDF、JSON 接口返回)也做屏蔽时,X-Robots-Tag 响应头比 meta 更底层、更可靠。

在 PHP 入口(如 index.php 开头)或中间件中加:

header('X-Robots-Tag: noindex, nofollow', true);

这个头会作用于整个响应,包括由 PHP 输出的任意 Content-Type(哪怕你 echo json_encode([...]) 返回 API 数据,也能防止被索引)。

  • 必须在任何输出(包括空格、BOM、echo)之前调用 header(),否则会报 headers already sent
  • 如果用了输出缓冲(ob_start()),可以在缓冲结束前加,但更稳妥的做法是尽早设置
  • Nginx/Apache 也可在服务器配置里全局加该头(例如 Nginx 的 add_header X-Robots-Tag "noindex, nofollow";),适合整站测试环境

配合环境隔离和基础防护更稳妥

以上三招是内容层面的“请勿收录”,但测试站真正安全,还得防止被误访问或暴力探测。光靠屏蔽爬虫不够。

  • 用子域名隔离:把测试站部署在 test.example.comstaging.example.com,和正式站物理分离,避免 cookie / CORS / 缓存污染
  • 加基础访问控制:Nginx/Apache 配置 IP 白名单,或用 HTTP Basic Auth(auth_basic "Restricted"; auth_basic_user_file /etc/nginx/.htpasswd;
  • 检查是否暴露敏感信息:确认 phpinfo()、错误报告(display_errors = Off)、调试日志、.env 文件不可 Web 访问
  • 别依赖 robots.txt 做安全防护——它只是礼貌提示,恶意扫描器完全无视

真正容易被忽略的是:多个规则叠加时优先级和生效范围不同。robots.txt 是全站指令,meta 是单页指令,X-Robots-Tag 是响应级指令;三者都设上,才覆盖得全。

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于文章的相关知识,也可关注golang学习网公众号。

前往漫画官网入口并下载 ➜
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>