龙卷风重定向到不同的域

Tornado redirect to a different domain

我有一个 Tornado 服务器,我想将来自某个国家/地区的人重定向到一个完全不同的域。这取决于他们的 IP,我需要它为每个选择的 URI 工作。因此,例如,如果有人从英国 IP 转到 www.mysite.com/about,我想将她重定向到 www.mysite.uk/about.

我尝试将函数 initialize() 添加到 BaseHandler,但根据我所见,不可能从 init 完成。

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

您知道 Tornado 中的任何解决方案吗? (我也用nginx,但是觉得它不支持查ip,找位置,而且我的URI很多)。

谢谢!

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

您无法从 initialize() 重定向(或发送任何响应),但可以从 prepare() 重定向。听起来这是你想做的事情的正确位置:

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