【问题标题】:How to block all IE and Microsoft Edge other than Chromium如何阻止除 Chromium 之外的所有 IE 和 Microsoft Edge
【发布时间】:2021-01-24 08:26:32
【问题描述】:

我想阻止所有 Internet Explorer 版本和旧版 Microsoft Edge(Edge Chromimum 除外)访问我的网站

感谢一个旧帖子,我从这个开始,但我找不到如何在不阻止 Edge chromium 的情况下阻止 Edge:

if(preg_match('/(?i)(msie [0-9]+)|(Trident\/[0-9]+)/', $_SERVER['HTTP_USER_AGENT'])) {
  // Error message
}
else {
  // Login form
}

【问题讨论】:

  • 您知道用户代理很容易被欺骗吗?大多数普通用户不会这样做,但任何知识渊博的人,或者知道如何使用搜索引擎查找的人都可以轻松绕过这一点。此外,为什么要阻止(旧)Edge?您是否设法使用它不支持的功能构建了一些东西?为什么不实施后备?否则,您只是潜在地排除了用户,并且对于大多数网站来说这是一件坏事(因为他们想要客户/访问者)。
  • 谢谢!该解决方案旨在在内部(内部网站)使用并强制更改浏览器,我有时会收到投诉,因为一些 JS 功能错误或 CSS 不好,但这大部分时间都发生在他们的浏览器上(我不'不用我动手,有美国、西班牙、德国等几个实体)
  • 好吧,如果这是一个公司环境,那么您当然可以确保使用组策略来升级每个人的 Windows 10,以便它包含最新的 (Chromium) 版本的 Edge?然后问题就消失了。
  • 我明白了。您唯一能做的就是试验两个版本的 Edge - 使用它们向测试页面发送请求,并查看它们的用户代理字符串是否不同。如果它们没有不同,那么您无法在服务器端区分它们。在这种情况下,作为替代方案,您可能可以在站点中嵌入一点点 JS,它可以告诉您在页面加载时浏览器支持什么(甚至是哪个浏览器),并且然后在此时向用户弹出一条消息,说他们需要使用不同的浏览器。
  • 但我不知道具体是如何做到的,这不是我个人不得不面对的问题。因此,除非有其他知道的人出现在这里,否则您可能需要花一点时间进行研究,如果失败,请在此处使用相关标签提出有关该主题的不同问题。

标签: php http internet-explorer user-agent


【解决方案1】:

我建议您尝试检查用户代理的子字符串可能有助于识别 IE 和 Edge 旧版浏览器。然后,如果它是 IE 或 Edge 旧版浏览器,那么您可以向用户显示一条消息以使用 MS Edge Chromium 浏览器。如果是其他浏览器,它会让用户访问该网站。

示例代码:

<!doctype html>
<html>
   <head>
   </head>
   <body>
      <div id="info"></div>
      <script>
         function detectIE() {
           var ua = window.navigator.userAgent;
         
           var msie = ua.indexOf('MSIE ');
           if (msie > 0) {
            
             return "IE " + parseInt( ua.substring(msie + 5, ua.indexOf('.', msie)), 10);
           }
         
           var trident = ua.indexOf('Trident/');
           if (trident > 0) {
            
             var rv = ua.indexOf('rv:');
             return "IE " + parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);
           }
         
           var edge = ua.indexOf('Edge/');
           if (edge > 0) {
            
             return "Edge " + parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10);
           }
         
           // other browser
           return "false";
         }
         var result=detectIE();
         if (result=="false")
         {
            document.getElementById("info").innerHTML +="<h2>Welcome to the site...</h2>";
         }
         else
         {
            document.getElementById("info").innerHTML += "<h2>Dear user you are using " + result + " This browser is not supported by this site. Kindly use MS Edge Chromium browser...</h2>";
                //console.log(result);
         }
         
      </script>
   </body>
</html>

输出:

参考答案:

How can I detect Internet Explorer (IE) and Microsoft Edge using JavaScript?

此外,您可以根据自己的要求修改代码示例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-21
    • 1970-01-01
    • 2021-05-03
    • 2021-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-04
    相关资源
    最近更新 更多