后台目录一旦被抓取,轻则暴露敏感接口,重则让攻击者直接拿到网站权限;可统计路径又是运营人员每天必看的数据来源,封得太死等于“自废双眼”。佛山本地企业在给官网做SEO时,普遍会遇到“既要屏蔽后台又要保留统计”的两难。本文用刚帮顺德某机械设备站做完上线的实操记录,把robots.txt怎么写、nginx怎么配、百度统计路径怎么留,一步不漏拆给你看;照着抄,10分钟就能上线,后台安全了,数据也照跑。
一、先搞清“后台”与“统计”到底长什么样
佛山中小企业习惯用这些组合:
后台入口:/admin、/manage、/system、/wp-admin、/dede
统计脚本:/hm.js(百度统计)、/analytics.js(GA)、/cnzz.js
统计接收:/hm.gif、/collect、/__utm.gif
robots.txt只能“拦路”,不能“锁门”;它告诉蜘蛛“别来”,但拦不住人工浏览器。所以后台目录必须靠“双重保险”——robots先声明禁区,nginx再补一层Basic Auth或IP白名单,才算真正安全。
二、robots.txt标准写法(佛山9月最新实测版)
User-agent: * # 1. 后台目录统一封死 Disallow: /admin Disallow: /manage Disallow: /system Disallow: /wp-admin Disallow: /dede Disallow: /include # 2. 统计相关路径明确放行 Allow: /hm.js Allow: /hm.gif Allow: /collect Allow: /analytics.js # 3. 其余正常抓取 Sitemap: https://www.xxx.com/sitemap.xml
要点:
“Allow”指令必须放在“Disallow”后面,百度Spider 2.0才优先识别。
大小写敏感,/Admin不等于/admin,别写错。
如果想一次屏蔽所有带“?”的动态后台,可加一行
Disallow: /*?*admin
三、nginx再加一把锁(可选,但强烈建议)
robots只是“告示牌”,防君子不防小人。下面这段配置给后台加“白名单+Basic Auth”,佛山电信固定IP段直接放行,外出办公再走账号密码。
location ^~ /admin/ { # 佛山公司电信IP allow 183.36.0.0/16; # 广州分部IP allow 58.62.0.0/16; deny all; # 再补一层Basic Auth auth_basic "Admin Zone"; auth_basic_user_file /etc/nginx/htpasswd; try_files $uri $uri/ =404; }
保存后nginx -t && nginx -s reload,0中断生效。
四、百度统计路径验证:看蜘蛛到底有没有“误伤”
1. 百度资源平台→Robots→输入/hm.js→检测,返回“允许”即成功。
2. 服务器日志里搜“Baiduspider” + “/hm.gif”,状态码200说明正常回传。
3. 统计后台实时访客→右上角“报告数据”出现当日IP,证明数据没断。
五、3个佛山企业常踩的坑
把“/hm”整个目录Disallow,结果连hm.gif一起封死,数据直接归零。
在robots.txt里写“Allow: */hm.js”,通配符*放错位置,百度不认。
后台路径做了302跳转到/login,却忘记屏蔽/login,蜘蛛照样能抓到跳转前的状态码,暴露后台地址。
六、附:一键检查脚本(Linux)
#!/bin/bash # check-robots.sh SITE=$1 wget -qO- $SITE/robots.txt | grep -E '(Disallow|Allow)' | while read line do path=$(echo $line | awk '{print $2}') code=$(curl -s -o /dev/null -w "%{http_code}" $SITE$path) echo "$path -> HTTP $code" done
跑一遍,200的就是“可访问”,403/404才算被拦住。
结尾
robots.txt不是写完就完事,网站每新增一个系统路径,就要同步更新;后台换地址,旧目录也要继续保留Disallow,防止老链接被翻出来。佛山本地服务器如果后续上云,记得把新的出口IP加到nginx白名单,不然自己也被挡在外面。按上面模板改完,后台被抓的风险基本降到0,统计每天照收数据,SEO和安全两边都稳。有其他路径拿不准要不要封,把URL扔百度资源平台的“Robots检测”里跑一下,10秒出结果,比盲猜靠谱得多。