如何在我的Django web应用程序上阻止internet explorer?

如何在我的Django web应用程序上阻止internet explorer?,django,html,internet-explorer,Django,Html,Internet Explorer,我正在开发一个不能很好地与Internet Explorer配合使用的web应用程序(web套接字、json、安全问题) 现在,在我的应用程序使用IE之前: 如何拒绝来自Internet Explorer客户端的连接? 谢谢创建一个中间件,在其中解析请求.META['HTTP\u USER\u AGENT']。如果你发现用户使用IE,给他一个好消息(例如一个通知或一个小警告框),告诉他你的网站没有针对他的浏览器进行优化:) 一些代码示例:Django way 中间件.py 您的基本模板: {%

我正在开发一个不能很好地与Internet Explorer配合使用的web应用程序(web套接字、json、安全问题)

现在,在我的应用程序使用IE之前:

如何拒绝来自Internet Explorer客户端的连接?


谢谢

创建一个中间件,在其中解析
请求.META['HTTP\u USER\u AGENT']
。如果你发现用户使用IE,给他一个好消息(例如一个通知或一个小警告框),告诉他你的网站没有针对他的浏览器进行优化:)

一些代码示例:Django way 中间件.py

您的基本模板:

{% if request.is_IE %}<div class="alert">Watch out! You're using IE, but unfortunately, this website need HTML5 features...</div>{% endif %}
{%if request.is_IE%}小心!您正在使用IE,但不幸的是,此网站需要HTML5功能…{%endif%}
然后将其添加到您的中间产品列表中

优化:纯HTML方式 如果您只想显示与我所做的类似的消息,可以使用HTML条件注释:

<!--[if IE]> <div class="alert">...</div><![endif]-->

还有另一种方法!只需使用设置变量,并确保该变量已安装在您的站点上

比如说

import re
DISALLOWED_USER_AGENTS = (re.compile(r'msie\s*[2-7]', re.IGNORECASE), )

干杯

请不要这样做。告诉他们你的应用程序不兼容,并鼓励他们使用新浏览器或安装chrome frame。我通常同意Nick的说法,但可能是重复的,但就IE而言,
-一个警告就好了,这样他们至少可以看到它的样子。如果你想直言不讳,你可以做一些类似于
(你的页面内容)
的事情,如果浏览器是IE,这应该可以有效地注释掉你的全部代码。不过我不建议你这么直言不讳。@NickTomlin你不认为如果用户仍然尝试我的应用程序,挫折感会更大吗?我想显示一条消息并拒绝连接。真的很糟糕吗?这不应该是
MISE
而不是
Trident
?@psychok7事实上,
MSIE
在用户代理字符串中比
Trident
更频繁:我要修复它:
从Internet Explorer 10开始,标准模式不再支持条件注释。使用功能检测为浏览器不支持的网站功能提供有效的回退策略。
请举一个使用不允许的用户代理的示例是否可以在该级别更改默认403消息?我想是的,因为Django 1.9引发了PermissionDenied异常,所以您可以更改默认handler403
import re
DISALLOWED_USER_AGENTS = (re.compile(r'msie\s*[2-7]', re.IGNORECASE), )