BA专用代码,不影响收录
首页顶部新增JS脚本
基于实际场景验证,一般只需要确保审核员审核时网站打不开即可,比如虽然阿里云的在BA过程提示需要网站关闭解析,以及审核客服在打电话告知时表达的都是需要网站停止解析,但实际上确保他们打开网站看不到网站内容即可,网站内容可以是空白,可以是故障状态码等等。
所以我们第一步需要到网站的首页源码,如index.php、index.html等文件(不同网站程序有所不同),以Wordpress为例,建议修改主题目录下的index.php文件(不建议修改根目录下的index.php,因为内页访问是经过index.php的,我们只做对访问首页的限制)
根据来路与UA判断
- <script type="text/javascript">// 主流搜索引擎爬虫User-Agent特征正则表达式var crawlerPattern = /(baidu|baiduspider|googlebot|bingbot|sogou|360spider|yisouspider|yahoo|msnbot|bytespider|jikespider|sosospider|haosouspider)/i;// 获取当前访问者的User-Agentvar userAgent = navigator.userAgent.toLowerCase();// 判断是否为搜索引擎爬虫if (!crawlerPattern.test(userAgent)) { // 非爬虫用户,重定向到404页面 window.location.href = "/404.html"; // 备选方案:直接显示404内容(如果不需要跳转) // document.documentElement.innerHTML = '<html><head><title>404 Not Found</title></head><body><h1>404 Not Found</h1><p>The requested URL was not found on this server.</p></body></html>';}</script>
复制代码 纯前端 JS 方案无法识别禁用 JavaScript 的用户,建议结合后端 User-Agent 检测作为补充方案。
1. Nginx 服务器配置- # 在nginx.conf或虚拟主机配置中添加if ($http_user_agent !~* (baidu|baiduspider|googlebot|bingbot|sogou|360spider|yisouspider)) { return 404;}
复制代码 2.PHP 实现- <?php$user_agent = $_SERVER['HTTP_USER_AGENT'] ?? '';$crawler_pattern = '/(baidu|baiduspider|googlebot|bingbot|sogou|360spider|yisouspider)/i';if (!preg_match($crawler_pattern, $user_agent)) {http_response_code(404);echo '404 Not Found';exit;}?>
复制代码
|