伪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页面。这将有助于更全面地管理不同设备和系统的访问控制,确保网站资源的合理分配和安全性。

相关推荐
她说彩礼65万10 小时前
C# 特性详解
linux·服务器·c#
面向星辰17 小时前
扣子开始节点和结束节点
java·服务器·前端
一匹电信狗18 小时前
【C++】封装红黑树实现map和set容器(详解)
服务器·c++·算法·leetcode·小程序·stl·visual studio
大锦终18 小时前
【Linux】网络层与数据链路层中重点介绍
linux·运维·服务器·网络
lht63193561219 小时前
从Windows通过XRDP远程访问和控制银河麒麟 v10服务器
linux·运维·服务器·windows
qiudaorendao19 小时前
作业11.9
linux·服务器·apache
岚天start20 小时前
解决方案—K8S集群的日志按天并按照命名空间分类定时同步到日志服务器
服务器·docker·kubernetes·shell·日志备份
顾安r21 小时前
11.10 脚本算法 五子棋 「重要」
服务器·前端·javascript·游戏·flask
gpfyyds6661 天前
配置dns主从服务。要求从服务器能够定时从主服务器同步数据。
运维·服务器
倔强的石头1061 天前
【Linux指南】操作系统的理解:从“内核”到“广义系统”的完整认知
linux·运维·服务器