在切换服务器时过滤破坏的referer Django电子邮件

时间:2012-12-24 08:56:08

标签: python django amazon-ec2

我们经常在切换EC2服务器时更改AWS上的IP地址(是的,我们在适用时使用弹性IP)。有时我们会获得用于托管其他应用程序的IP地址(当然这很好)。当最终用户点击陈旧链接时,他们会到达我们的服务器(这没关系)。但是这些HTTP GET请求有一个“referer”标头,因此常规404错误会向我们的开发人员生成一封自动Django电子邮件!

我可以使用以下Python代码轻松地重新创建错误电子邮件:

import urllib2
req = urllib2.Request('http://my_website.com/some/url/we/dont/have')
req.add_header('Referer', 'http://whatever.i.want')
request = urllib2.urlopen(req)

当Referer标题被注释掉时,Django不会发送电子邮件 我们仍然希望在我们网站上有真正断开的链接时发送电子邮件,因此我不想将SEND_BROKEN_LINK_EMAILS设置为False。
我无法使用IGNORABLE_404_URLS进行过滤,因为a。逻辑是颠倒的,b。正则表达式只扫描路径而不是主机名。

帮助?

1 个答案:

答案 0 :(得分:1)

我可能会遇到一些捕获Http404异常的middleware,检查referer标头,并引发一个单独的异常(可能仍然会被邮寄),或者进行简单的重定向到你的头版。更好的是,创建一个自定义页面,描述用户最终到达目的地的原因,然后重定向到该页面。