# 域名防红跳转系统(纯原生 PHP)
纯原生 PHP + MySQL(PDO)实现的多级域名随机跳转系统,无任何框架依赖。
## 跳转逻辑
、
```
用户访问 a.com(一级入口)
│
├─ 从【二级域名池】按权重随机选一个(b.com / c.com / ...)
▼
跳转 b.com/go.php?ref=a.com
│
├─ 从【产品链接池】按权重随机选一个(产品A / 产品B / ...)
▼
302 跳到最终产品落地页
```
- 一级域名 = 对外推广入口(如 a.com)
- 二级域名 = 中转节点(如 b.com、c.com),挂在同一套源码上,只需把 DNS 指到同一台服务器
- 产品链接 = 最终落地页 URL
每个节点都带"权重"字段,权重越大被随机命中概率越高;可随时停用/启用。
## 功能特性
- 全功能后台:域名管理、产品链接管理、短链接、跳转日志、系统设置、修改密码
- 一二级域名分池随机,按权重分发
- 短链接:随意填任意目标 URL,一键生成短码跳转,支持过期、独立点击统计
- 微信/QQ 内置浏览器识别,可配置"拦截显示提示页"
- 跳转延迟中间页(0~10 秒可配,用于过风控/等待统计加载)
- 完整跳转日志:级别、来源、目标、IP、UA、Referer、是否微信、时间
- 计数器:每个域名/产品被命中次数
- 一键安装脚本:填写数据库 + 管理员账号即可完成建库建表
## 环境要求
- PHP ≥ 7.2(需 pdo_mysql 扩展)
- MySQL ≥ 5.7 / MariaDB ≥ 10.2
- Web 服务器:Nginx / Apache
## 安装
1. 把整个目录上传到网站根目录,确保 `config/` 目录可写
2. 浏览器访问 `http://你的域名/install.php`
3. 填写数据库信息和管理员账号,点"开始安装"
4. 安装成功后**删除 install.php**
5. 访问 `http://你的域名/admin/login.php` 登录后台
## 后台配置步骤
1. **域名管理** → 添加"一级入口域名"(填 a.com 等所有对外推广域名)
2. **域名管理** → 添加"二级中间域名"(填 b.com、c.com 等中转域名,每个都要把源码部署/软链过去,或用同一个站点绑定多域名)
3. **产品链接** → 添加所有最终产品 URL,设置权重
4. **系统设置** → 按需开启微信拦截、跳转延迟、日志
## 短链接使用
后台 →「短链接」→「添加短链接」:
- **短码**:可自定义(3-32 位字母数字),点"随机生成"自动生成
- **目标 URL**:随意填任意网址(长链接、第三方链接都行)
- 支持过期时间、独立点击统计、启停
访问地址(两种写法都支持):
- 不带伪静态:`https://你的域名/s.php?c=abc123`
- 带伪静态(推荐,更短):`https://你的域名/abc123`
### Nginx 伪静态配置
在站点 `server {}` 里加入:
```nginx
location / {
try_files $uri $uri/ /s.php?c=$uri&$query_string;
}
location ^~ /admin/ {
try_files $uri $uri/ /admin/index.php?$query_string;
}
```
### Apache
已自带 `.htaccess`,确保开启 `AllowOverride All` 即可。
## 多域名部署说明
所有二级域名(b.com、c.com ...)都需要指向同一套 PHP 代码所在的服务器。常见做法:
- **Nginx**:在 server_name 后追加多个域名,root 指向同一个目录
- **Apache**:在 vhost 的 ServerAlias 后追加多个域名
- 程序会自动识别当前 HTTP_HOST 作为来源,不需要为每个域名单独部署
## 目录结构
```
domain-redirect/
├── index.php # 一级入口:随机跳到二级域名
├── go.php # 二级入口:随机跳到产品链接
├── s.php # 短链接入口:?c=xxx 或伪静态 /xxx
├── install.php # 一键安装
├── .htaccess # Apache 伪静态规则
├── config/
│ └── config.php # 数据库配置(安装时生成)
├── includes/
│ ├── db.php # PDO 连接
│ ├── functions.php # 公共函数(权重随机、日志、跳转等)
│ ├── auth.php # 后台鉴权
│ └── admin_layout.php # 后台布局
├── admin/
│ ├── login.php # 登录
│ ├── index.php # 仪表盘
│ ├── domains.php # 域名管理
│ ├── products.php # 产品链接
│ ├── short.php # 短链接管理
│ ├── logs.php # 跳转日志
│ ├── settings.php # 系统设置
│ └── logout.php
└── sql/
└── install.sql # 建表 SQL
```
## 默认账号
安装时自行设置。后台登录地址:`/admin/login.php`
## 安全建议
- 安装完成后删除 `install.php`
- 修改默认管理员密码为强密码
- 生产环境建议关闭错误显示
- 定期清理跳转日志(日志表很大时会影响性能)