PHP+Nginx域名防红教程 兼容虚拟主机及原有站点
一、教程简介
网站运营过程中,域名在微信、QQ内置浏览器中容易出现访问提示异常、页面拦截等问题,也就是行业常说的域名防红需求。为改善域名访问稳定性、提升用户浏览体验,本文整理两套成熟稳定的域名防红适配方案,分别为 PHP 文件引导方案、Nginx 服务层优化方案。

本教程完美兼容根目录已有 index.php 的站点,不会覆盖原有网站程序、不影响业务运行,同时支持虚拟主机、独立服务器双环境,新手可直接部署。
二、运行环境支持
- PHP方案:支持 PHP7.2、PHP7.4,虚拟主机、服务器通用
- Nginx方案:仅支持独立服务器、宝塔面板环境
- 无需数据库,轻量化部署,配置简单
- 支持 HTTP/HTTPS 域名站点
三、PHP域名防红方案(虚拟主机首选、通通兼容)
方案优势
无需修改服务器配置、不改动原有 index.php 程序,通用性较高,是虚拟主机实现域名防红的最优方案。通过识别微信、QQ浏览器环境,智能展示引导页面,其他浏览器正常访问跳转。
部署教程
网站根目录新建 guide.php,放入以下代码,修改对应域名为你的域名即可使用。
<?php
$target_url = "https://www.example.com";
$ua = $_SERVER['HTTP_USER_AGENT'];
$is_wx = strpos($ua, 'MicroMessenger') !== false;
$is_qq = strpos($ua, 'QQ/') !== false || strpos($ua, 'QQBrowser') !== false;
if ($is_wx || $is_qq) {
?>
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<title>请使用系统浏览器访问</title>
<style>
*{margin:0;padding:0;box-sizing:border-box}
body{background:#fff;font-size:16px;padding:30px 20px;color:#333;text-align:center}
.tip{margin-top:40px}
.copy-box{margin:24px auto;padding:12px;background:#f4f4f4;border-radius:8px}
.btn{padding:12px 24px;background:#0066ff;color:#fff;border:none;border-radius:8px;font-size:16px;margin-top:20px}
</style>
</head>
<body>
<div class="tip">
<h3>当前浏览器暂不支持直接访问</h3>
<p style="margin-top:16px">请复制链接,使用手机自带浏览器打开访问</p>
<div class="copy-box" id="link"><?php echo $target_url;?></div>
<button class="btn" onclick="copyText()">一键复制链接</button>
<p style="margin-top:24px;color:#666">也可长按链接手动复制</p>
</div>
<script>
function copyText(){
let txt = document.getElementById("link").innerText;
navigator.clipboard.writeText(txt).then(()=>alert("复制成功!打开手机浏览器粘贴访问即可"));
}
</script>
</body>
</html>
<?php
exit;
}else{
header("Location: {$target_url}");
exit;
}
?>
独立服务器配套Nginx规则(虚拟主机不用加)
服务器用户可添加以下规则,实现根域名自动防红跳转:
if ($http_user_agent ~* "(MicroMessenger|QQ/|QQBrowser)") {
rewrite ^ /guide.php last;
}
虚拟主机使用详细说明
虚拟主机无法修改 Nginx 配置,不能实现自动识别跳转,但可以正常使用PHP防红文件。
使用方法:直接访问 你的域名/guide.php 即可实现微信、QQ环境域名防红引导功能。
四、Nginx高性能域名防红方案(服务器专用)
独立服务器用户可使用纯Nginx防红方案,无需PHP文件,直接在服务器层拦截浏览器环境,性能更强、响应更快,实现域名防红优化。
if ($http_user_agent ~* "(MicroMessenger|QQ/|QQBrowser)") {
return 200 '
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<title>请使用系统浏览器访问</title>
<style>
*{margin:0;padding:0;box-sizing:border-box}
body{background:#fff;font-size:16px;padding:30px 20px;color:#333;text-align:center}
.tip{margin-top:40px}
.copy-box{margin:24px auto;padding:12px;background:#f4f4f4;border-radius:8px}
.btn{padding:12px 24px;background:#0066ff;color:#fff;border:none;border-radius:8px;font-size:16px;margin-top:20px}
</style>
</head>
<body>
<div class="tip">
<h3>当前浏览器暂不支持直接访问</h3>
<p style="margin-top:16px">请复制链接使用手机系统浏览器打开</p>
<div class="copy-box" id="link">https://www.example.com</div>
<button class="btn" onclick="copyText()">一键复制链接</button>
<p style="margin-top:24px;color:#666">长按链接可手动复制</p>
</div>
<script>
function copyText(){
let txt = document.getElementById("link").innerText;
navigator.clipboard.writeText(txt).then(()=>alert("复制成功!打开浏览器粘贴访问"));
}
</script>
</body>
</html>
';
}
五、域名替换点位(重点必看)
1、虚拟主机用户:仅需替换 1 处域名
guide.php 内:$target_url = "https://www.example.com";
2、独立服务器用户:一共替换 2 处域名
① guide.php 目标网址
② Nginx代码内展示链接地址
两处域名保持一致,推荐使用HTTPS协议。
六、代码授权说明
代码长期免费使用,不存在使用期限,无授权费用,无加密,可自行部署、修改。
注意:代码仅做浏览器识别与访问引导优化。微信、QQ风控策略会动态更新,方案效果会随平台策略变化;域名、服务器/虚拟主机等相关资源需自行承担费用,网站内容务必遵守法律法规以及平台规范。
七、代码运行说明
本套域名防红代码实测稳定,在 PHP7.2/7.4、Nginx 环境均可正常运行,不影响原有网站程序。可以有效改善域名在微信、QQ内置浏览器的访问异常问题,优化用户访问体验。
八、常见问题排查
- PHP报错:切换 PHP7.2、PHP7.4 版本
- 复制失效:老旧浏览器不支持剪贴板,可长按复制
- 不生效:清理缓存、重载Nginx配置
- 虚拟主机无法自动跳转:属于正常限制,只能访问guide.php入口
九、免责声明
1、本文技术代码仅为网站运维技术学习与常规访问体验优化,用于改善域名在不同浏览器的适配问题。
2、用户部署前需保证域名及站点内容合规,严格遵守各大平台规则与国家网络法规。
3、网络风控机制为动态更新状态,本方案为常规适配优化,不保证适配所有场景。
4、所有部署行为均为用户自主操作,使用产生的一切问题由使用者自行承担。
5、操作前请务必备份网站源码和数据库,以及Nginx规则,以免操作失误回滚操作。














![表情[baoquan]-服务器测评_云 VPS 推荐_运维技术教程与源码分享 - 环球云域数据平台 cloudidc.vip](https://cloudidc.vip/wp-content/themes/zibll/img/smilies/baoquan.gif)


暂无评论内容