让代码更简单

如何禁止腾讯系列应用访问网站

重要:本文最后更新于2024-02-15 20:39:53,某些文章具有时效性,若有错误或已失效,请在下方留言或联系代码狗

相信很多站长都被腾讯标记为不安全网站,导致用户无法在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 打赏

评论 (0)

登录后评论
QQ咨询 邮件咨询 狗哥推荐