相信很多站长都被腾讯标记为不安全网站,导致用户无法在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();
}
};
这种方式缺点也很明显,会对网页进行一次请求并在网页加载后重定向。
欢迎访问秀主题博客,分享简单实用WP教程第二种,在后端程序中实现,无需前端加载网页。这里以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配置文件即可。