伪404兼容huawei生效显示404

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


**步骤 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

```

  1. **安卓设备的User-Agent**:

```

Mozilla/5.0 (Linux; Android 11; Mobile) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.210 Mobile Safari/537.36

```

  1. **华为鸿蒙设备的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页面。

  1. **模拟User-Agent测试**:
  • 使用浏览器扩展或工具(如User-Agent Switcher)模拟不同设备的User-Agent,包括华为鸿蒙设备的User-Agent。

  • 确认模拟的User-Agent能够正确触发伪404规则。

  1. **查看服务器日志**:
  • 检查服务器日志,确认来自所有目标设备的请求都被正确归类为伪404。

  • 确认没有其他设备误判为伪404。

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

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

  1. **用户反馈**:
  • 收集用户的反馈,确认所有目标设备用户都能看到伪404页面。
  1. **日志分析**:
  • 定期分析服务器日志,确保所有目标设备都被正确处理,没有遗漏或误判的情况。
  1. **更新规则**:
  • 随着设备的更新或新设备的发布,可能需要更新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页面。这将有助于更全面地管理不同设备和系统的访问控制,确保网站资源的合理分配和安全性。

相关推荐
QMCY_jason4 分钟前
x86 ubuntu2204 无gui 安装 openeuler 2203 aarch64版本
linux·运维·服务器
重生之小比特9 分钟前
【Linux系统】12 进程程序替换 自定义Shell 命令行解释器
linux·运维·服务器
轻舟技术A10 分钟前
Provider 不属于 Agent 核心:rpi 的分层理由与收益
服务器·网络
连山齐名20 分钟前
ai应用开发的学习笔记
服务器·笔记·学习
Shadow(⊙o⊙)32 分钟前
仿muduo实现高并发服务器——事件就绪管理Channel.hpp
服务器·c++
あ-36 分钟前
CubeSandBox配置CubeMaster CPU 超分
linux·运维·服务器
黄俊懿43 分钟前
【架构师从入门到进阶】第六章:服务集群优化——第八节:线程数公式
java·服务器·数据库·分布式·性能优化·架构·系统架构
是真的小外套1 小时前
2023年软考中级信息安全工程师|选择题考点+5道案例分析真题解析(含答案)
java·服务器·网络
速捷工控 PLC触摸屏还原程序1 小时前
S7-200 SMART程序上传提示密码?维修、改造和换机怎么选处理路径?
运维·服务器
鬼手点金2 小时前
Harness 工程:模型之外的竞争力
服务器·人工智能·深度学习·机器学习·bug