域名被镜像的应对:在.htaccess设置阻止非源站IP访问+提交百度投诉
域名被镜像后,单靠 .htaccess 挡非源站 IP 只算半招,只对实时反向代理有效;扒站型镜像必须靠取证加百度投诉。下面用四个真实场景说明判断顺序和操作细节。
场景一:搜索结果里冒出个陌生域名,先判断是哪种镜像
一位做工具站的读者反馈,百度上搜自己的核心词,排在前面的却是一个没见过的域名,点进去页面结构、配图、甚至内链都和自己站一模一样,只有标题后缀被换掉了。他第一反应是去改服务器配置,其实应该先做一件事:分清对方是"实时转发"还是"抄完就走"。
这两类镜像的处理手段完全不同:
- 反向代理型:访客请求先到对方域名,对方把你的页面实时抓回去再吐给访客,你的服务器每次都在响应。访问日志里会出现陌生 IP,UA 常常是空的,或者
Python-requests、curl、Scrapy这类痕迹。 - 整站扒站型:对方用采集程序跑一遍,把 HTML、图片、CSS、JS 全部落到自己空间,之后与你彻底无关。你的日志里只有一段集中的抓取记录,之后归于平静。
- 伪镜像/缓存型:只抓首页或某几个栏目,页面更新后很快就过期,危害相对小。
取证最快的方式是三条命令:
curl -I https://你的域名/
curl -I https://可疑域名/
dig 可疑域名 NS +short
对比两边返回的 Server、X-Powered-By、Set-Cookie 特征串;再在你自己的页面源码里埋一段不显示的内容指纹(比如一个带特定字符串的 HTML 注释,或者图片文件名里的独特后缀),过一两天看镜像页有没有原样带过来。带过来说明是实时抓取,不带则基本可判定为扒站。这一步决定后面用哪套手段,别跳过。
场景二:IP 与 UA 规则,只对"请求还打到你这台机器"的情况有效
如果是反向代理型,源站入口控制就有意义。Apache 2.4 的写法大致如下,放在站点根目录的 .htaccess 或虚拟主机配置里:
SetEnvIf Remote_Addr "^198\.51\.100\." mirror_deny
SetEnvIf User-Agent "^(Python-requests|curl|Scrapy|$)" mirror_deny
<RequireAll>
Require all granted
Require not env mirror_deny
</RequireAll>
老版本 Apache 2.2 用另一套语法,靠 Order Deny,Allow 配合 Deny from、Allow from 做 IP 白名单:只放行你自己和搜索引擎的网段,其余全拒。Nginx 这边等价的做法是 if ($http_user_agent ~* "Python-requests") { return 403; },或者用 limit_req 对单 IP 限速。
有两个容易踩的坑:一是站点前面挂了 CDN 或 Nginx 反代时,Remote_Addr 拿到的是回源 IP,真正的访客 IP 在 X-Forwarded-For 里,需要先用 real_ip 模块还原,规则才准;二是改完必须 apachectl configtest 验证语法再 reload,然后用 curl -A "Python-requests" -I https://你的域名/ 测一次,确认返回 403,同时用正常浏览器 UA 测一次,确认没把自己人挡在门外。搜索蜘蛛记得放行,百度是 Baiduspider,Google 是 Googlebot。
但这条路的边界要说清楚:规则跑在你自己的服务器上,只对"请求还打到你这台机器"的镜像有用。对方已经把静态文件扒走自己托管,.htaccess 一个字都管不到,这时候只能转下一节。
场景三:扒站型镜像走投诉通道,材料比措辞重要
百度侧的入口是搜索资源平台(ziyuan.baidu.com),进用户中心找反馈或侵权投诉相关分类,填原站域名、镜像域名、问题描述,附上证据。另外还有举报入口 jubao.baidu.com 可以做补充。提交前把这几样东西准备好,能省掉来回补材料的时间:
- 原站的主体证明——ICP 备案信息,或者域名 WHOIS 持有者信息;
- 首发时间证据——文章发布时间、百度快照、后台发布记录,三样里至少两样;
- 抓取痕迹——服务器访问日志里对方 IP 与其抓取时间点,UA、IP、时间三列导出成表;
- 内容指纹对比——同一段特征串在两个域名上同时出现的截图;
- 镜像域名清单——批量镜像一次性列全,比一个一个提效率高。
如果镜像站托管在海外,可以再给它的主机商发一封 DMCA 通知,附上侵权 URL 和版权声明即可。要注意的是,投诉本质上是"一份材料对一个域名",批量镜像得分批处理;受理周期没有固定天数,以平台回执为准,别指望当天出结果。
还有一件常被忽略的事:把原站的收录基础打扎实。sitemap 提交、主动推送、结构化数据补齐,这些动作能让百度更快确认谁是首发方,投诉的成功率也跟着上去。
场景四:复盘——把镜像当成常态,而不是一次事故
处理完之后别就撒手,镜像这事会反复出现。一位做内容站的站长后来养成了几个习惯,值得借鉴:
- 定期自查:拿自己最有辨识度的标题片段、图片文件名去搜一遍,看有没有落在别的域名上;图片反链也是很好的线索。
- 日志留档:每月把访问日志里 UA、IP、时间导出一份存档,真出事时不用临时翻。
- 内容层留标记:正文里固定带上账号名、时间戳、站内互链,既帮助原创识别,也方便举证。
- 服务器层做基础防护:对空 UA、异常 UA 和高频抓取直接限速或拒绝,成本很低。
- 该走法律就走法律:拿到镜像域名后先用 WHOIS 查一下持有者信息,必要时发律师函。
归纳成一句话:.htaccess 是止血,投诉是治本,两件事同时做;只做前者,扒站型镜像照样活得很好,只做后者,实时抓取的流量会一直消耗你的服务器。