相信很多站长都被腾讯标记为不安全网站,导致用户无法在QQ等app中打开网站,无形中损失了不少用户。所以干脆禁止用户在腾讯系列应用中打开网站算了,当然,得排除QQ浏览器。
其实想要实现本文所述功能,必须保证你的网站还没被腾讯标记,不然根本轮不到站长处理。因为他们的应用会在请求网站前,先向腾讯安全中心请求验证域名,如果被标记了直接显示他们的警告页面,根本没有请求咱们自己的服务器,所以被标记了就无解。
其实禁止指定应用访问网站就是一个判断应用UA标识然后重定向的功能,所以实现方式有3种。
第一种最简单,在网页前端执行,使用JavaScript来重定向。
复制
//如何禁止腾讯系列应用访问网站 //https://www.daimadog.org/10338.html // 检测特定应用程序的UA字符串 function isTencentApp() { const ua = navigator.userAgent.toLowerCase(); return ua.includes('qq') || ua.includes('wechat') || ua.includes('qzone'); } // 重定向到提醒页面 function redirectToReminderPage() { window.location.href = '/reminder.html'; // 替换为你的提醒页面的URL } // 在页面加载时进行检测和重定向 window.onload = function() { if (isTencentApp()) { redirectToReminderPage(); } };
这种方式缺点也很明显,会对网页进行一次请求并在网页加载后重定向。
第二种,在后端程序中实现,无需前端加载网页。这里以wordpress为例,在主题的functions.php文件中加入如下代码。
复制
//如何禁止腾讯系列应用访问网站 //https://www.daimadog.org/10338.html function is_tencent_app() { $user_agent = $_SERVER['HTTP_USER_AGENT']; return (strpos($user_agent, 'QQ') !== false) || (strpos($user_agent, 'wechat') !== false) || (strpos($user_agent, 'Qzone') !== false); } function redirect_to_reminder_page() { if (is_tencent_app()) { wp_redirect('/reminder/'); // 替换为你的提醒页面的URL exit; } } add_action('template_redirect', 'redirect_to_reminder_page');
也可以通过一些现成插件实现,效果是一样的。
第三种,优先级更高,直接在nginx等web服务器程序实现,无需进入网站程序中,更加节省服务器资源。
复制
//如何禁止腾讯系列应用访问网站 //https://www.daimadog.org/10338.html server { listen 80; server_name yourdomain.com; location / { #关注下面的内容 if ($http_user_agent ~* "QQ|wechat|Qzone") { return 301 http://yourdomain.com/reminder.html; # 替换为你的提醒页面的URL } #关注上面的内容 # 其他处理逻辑 # ... } # 其他配置项 # ... }
参考上面的配置,修改你的网站使用的nginx配置文件即可。
评论 (0)