我有一个龙卷风服务器,我想将来自某个国家/地区的人重定向到完全不同的域。这取决于他们的IP,我需要它来为所选择的每个URI工作。例如,如果有人从英国知识产权局访问www.mysite.com/about,我想将她重定向到www.mysite.uk/about。
我尝试将函数initialize()添加到BaseHandler,但根据我所看到的情况,无法从init完成。
我检查了RedirectHandler,但它只更改了URI,而不是我需要的整个域。
你知道龙卷风内的任何解决方案吗? (我也使用nginx,但不要认为它可以支持检查ip,查找位置,还有很多URI)。
谢谢!
答案 0 :(得分:3)
RedirectHandler
适用于绝对和相对网址;为什么你认为你不能用它改变域名?
您无法从initialize()
重定向(或发送任何回复),但您可以从prepare()
开始。听起来这是你想要做的正确的地方:
def prepare(self):
if should_redirect(self.request):
self.redirect(new_domain, self.request.uri)
raise tornado.web.Finish()