龙卷风重定向到不同的域
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()
我有一个 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()