Tornado重定向到其他域

时间:2015-04-22 10:26:32

标签: redirect tornado

我有一个龙卷风服务器,我想将来自某个国家/地区的人重定向到完全不同的域。这取决于他们的IP,我需要它来为所选择的每个URI工作。例如,如果有人从英国知识产权局访问www.mysite.com/about,我想将她重定向到www.mysite.uk/about。

我尝试将函数initialize()添加到BaseHandler,但根据我所看到的情况,无法从init完成。

我检查了RedirectHandler,但它只更改了URI,而不是我需要的整个域。

你知道龙卷风内的任何解决方案吗? (我也使用nginx,但不要认为它可以支持检查ip,查找位置,还有很多URI)。

谢谢!

1 个答案:

答案 0 :(得分:3)

RedirectHandler适用于绝对和相对网址;为什么你认为你不能用它改变域名?

您无法从initialize()重定向(或发送任何回复),但您可以从prepare()开始。听起来这是你想要做的正确的地方:

def prepare(self):
    if should_redirect(self.request):
        self.redirect(new_domain, self.request.uri)
        raise tornado.web.Finish()