伪404兼容huawei生效显示404

embedded/2025/2/27 13:11:25/

根据上述思考,以下是详细的中文分步说明:

---

**步骤 1:获取目标设备的User-Agent信息**

首先,我们需要收集目标设备的User-Agent字符串,包括:

1. **iPhone设备的User-Agent**:
   ```
   Mozilla/5.0 (iPhone; CPU iPhone OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.1 Mobile/15E148 Safari/604.1
   ```

2. **安卓设备的User-Agent**:
   ```
   Mozilla/5.0 (Linux; Android 11; Mobile) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.210 Mobile Safari/537.36
   ```

3. **华为鸿蒙设备的User-Agent**:
   ```
   Mozilla/5.0 (Huawei; HWA-AL00; HMA) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.210 Mobile Safari/537.36
   ```

**步骤 2:分析User-Agent字符串的特征**

从上述示例中,我们可以总结出不同设备的User-Agent特征:

- **iPhone**:包含“iPhone”关键字。
- **安卓设备**:包含“Android”关键字。
- **华为鸿蒙**:包含“Huawei”或“HMA”关键字。

**步骤 3:修改伪404设置以包括所有目标设备**

根据伪404的实现方式,分别进行以下修改:

* **修改Apache服务器配置(.htaccess文件)**

  假设当前的伪404设置如下:
  ```
  RewriteEngine On
  RewriteCond %{HTTP_USER_AGENT} "iPhone|Android" [NC]
  RewriteRule ^ - [L]
  ```

  修改后的设置应包括所有目标设备:
  ```
  RewriteEngine On
  RewriteCond %{HTTP_USER_AGENT} "iPhone|Android|Huawei|HMA" [NC]
  RewriteRule ^ - [L]
  ```

  这意味着,当User-Agent包含“iPhone”、“Android”、“Huawei”或“HMA”时,会触发伪404规则。

* **修改Nginx服务器配置**

  如果使用Nginx,假设当前配置如下:
  ```
  location / {
      if ($http_user_agent ~* "iPhone|Android") {
          return 404;
      }
      # 其他配置
  }
  ```

  修改后的配置应包括所有目标设备:
  ```
  location / {
      if ($http_user_agent ~* "iPhone|Android|Huawei|HMA") {
          return 404;
      }
      # 其他配置
  }
  ```

  这样,当User-Agent包含“iPhone”、“Android”、“Huawei”或“HMA”时,会返回404状态。

* **修改服务器端脚本(以PHP为例)**

  如果伪404是通过服务器端脚本实现的,例如:
  ```php
  if (strpos($_SERVER['HTTP_USER_AGENT'], 'iPhone') !== false || strpos($_SERVER['HTTP_USER_AGENT'], 'Android') !== false) {
      header('HTTP/1.1 404 Not Found');
      // 展示404页面
  }
  ```

  修改后的条件判断应包括所有目标设备:
  ```php
  $user_agent = $_SERVER['HTTP_USER_AGENT'];
  if (strpos($user_agent, 'iPhone') !== false || strpos($user_agent, 'Android') !== false || strpos($user_agent, 'Huawei') !== false || strpos($user_agent, 'HMA') !== false) {
      header('HTTP/1.1 404 Not Found');
      // 展示404页面
  }
  ```

**步骤 4:测试和验证修改后的伪404设置**

为了确保修改生效,需要进行全面的测试:

1. **多设备测试**:
   - **使用iPhone或安卓设备**访问链接,确认显示伪404页面。
   - **使用华为鸿蒙设备**访问链接,确认也显示伪404页面。

2. **模拟User-Agent测试**:
   - 使用浏览器扩展或工具(如User-Agent Switcher)模拟不同设备的User-Agent,包括华为鸿蒙设备的User-Agent。
   - 确认模拟的User-Agent能够正确触发伪404规则。

3. **查看服务器日志**:
   - 检查服务器日志,确认来自所有目标设备的请求都被正确归类为伪404。
   - 确认没有其他设备误判为伪404。

**步骤 5:持续监控和优化**

完成修改后,应持续监控伪404设置的表现:

1. **用户反馈**:
   - 收集用户的反馈,确认所有目标设备用户都能看到伪404页面。

2. **日志分析**:
   - 定期分析服务器日志,确保所有目标设备都被正确处理,没有遗漏或误判的情况。

3. **更新规则**:
   - 随着设备的更新或新设备的发布,可能需要更新User-Agent判断规则,确保兼容性。

通过以上步骤,可以有效地调整伪404设置,使其在所有目标设备(包括iPhone、安卓设备和华为鸿蒙设备)上正确显示伪404页面,确保所有用户都能获得一致的访问体验。

添加对华为系统的检测并触发伪404页面的详细步骤说明:

### 步骤 1:检测华为系统

在现有的移动设备检测逻辑中,添加对华为系统的检测。华为设备通常会在用户代理字符串中包含“Huawei”或“HONOR”。我们可以修改`andsystem`变量的定义,加入这些关键词的检测。

修改后的代码如下:

```javascript
var andsystem = /Android|Linux|Huawei|HONOR/.test(uagent) ? true : false;
```

### 步骤 2:添加华为系统的关键词检测

在关键词检测部分,添加与华为相关的关键词。例如,添加“华为系统”、“HUAWEI”、“HarmonyOS”等关键词到正则表达式中。

修改后的正则表达式部分如下:

```javascript
if (/Android|webOS|iPhone|iPad|Windows Phone|iPod|BlackBerry|SymbianOS|Nokia|Mobile|华为系统|HUAWEI|HarmonyOS/.test(navigator.userAgent)) {
    // existing logic
}
```

### 步骤 3:在关键词检测中添加华为系统的判断

在检测到移动设备后,进一步判断是否为华为系统,并在满足条件时触发伪404页面。

### 步骤 4:在PC端检测中添加华为系统的判断

### 步骤 5:测试新增功能

在修改代码后,进行测试以确保新增的华为系统检测和伪404触发功能正常工作。可以使用不同的设备和用户代理进行测试,包括华为手机和其他设备,验证是否在预期条件下正确触发伪404页面。

### 总结

代码中添加了对华为系统的检测,并在满足特定条件时触发伪404页面。这将有助于更全面地管理不同设备和系统的访问控制,确保网站资源的合理分配和安全性。
 


http://www.ppmy.cn/embedded/167536.html

相关文章

视频推拉流EasyDSS直播点播平台授权激活码无效,报错400的原因是什么?

在当今数字化浪潮中,视频推拉流 EasyDSS 视频直播点播平台宛如一颗璀璨的明珠,汇聚了视频直播、点播、转码、精细管理、录像、高效检索以及时移回看等一系列强大功能于一身,全方位构建起音视频服务生态。它既能助力音视频采集,精准…

【学习方法】学习软件专业课程的思考方式

学习软件专业课程的思考方式 在学习软件专业课程时,我们往往会遇到一些看似简单但实际上却非常复杂的概念和理论。这种时候,我们可能会觉得书本很厚,难以理解。然而,这种看似简单的想法并不一定就是错误的,因为它激发…

Spring Boot 实战:构建 RESTful API 服务

一、引言 在当今的软件开发领域,快速构建高效、可维护的后端服务是至关重要的。Spring Boot 作为 Spring 框架的扩展,以其简化配置、快速开发的特性,成为了众多开发者的首选。本文将带领大家通过一个实战项目,详细介绍如何使用 Sp…

vscode如何使用鼠标滚轮调整字体大小

1.打开设置 2.搜索Font Ligatures 3.编辑配置文件 4.修改代码并保存 修改前 修改后 在最后一行添加:“editor.mouseWheelZoom”: true 记得在上一行最后,加上英文版的“,”逗号 5.配置成功,再次按Ctrl鼠标滚轮便可以缩放了。

macpro m1 安装deepseek

记录一下安装过程: 一、环境准备 硬件要求 内存 ≥16GB:DeepSeek R1-8B 模型需占用约 4.9GB 显存,建议预留足够内存以避免运行卡顿29。 存储空间 ≥10GB:模型文件及依赖库需占用较大空间212。 软件依赖 安装 Ollama&#xff1a…

「云原生」「云原生应用的构建与部署」

云原生 为什么需要云原生? 从技术发展趋势看,更多的企业将会广泛应用云原生技术。在国家政策和企业需求的双重驱动下,更多企业上云,以及中国云计算的强势增长都是必然趋势,这也注定了更多企业将会关注、应用、采纳能…

【Java 优选算法】模拟

欢迎关注个人主页:逸狼 创造不易,可以点点赞吗~ 如有错误,欢迎指出~ 模拟算法的思路比较简单,根据题目描述列出流程,找出规律,将流程转化为代码 替换所有的问号 题目链接 解法 直接根据题目给出条件模拟 示例,找出规律 1.先找出字符?,再…

Docker数据卷操作实战

什么是数据卷 数据卷 是一个可供一个或多个容器使用的特殊目录,它绕过 UFS,可以提供很多有用的特性: 数据卷 可以在容器之间共享和享用对 数据卷 的修改立马生效对 数据卷 的更新,不会影响镜像数据卷 默认会一直存在,即时容器被…