我需要在我的烧瓶应用程序中完成操作后重定向回外部URL。 代码看起来像这样
if form.next.data is not None:
return redirect(form.next.data)
其中form.next.data
可以是“www.google.com”等外部域的绝对网址。但是,在将下一个值作为外部网址传递时,此重定向会重定向到http://mysitename/www.google.com
,并且会以404失败。
如何指定重定向到外部域并阻止Flask将其附加到我的域根目录?
答案 0 :(得分:15)
我认为您需要在http://
附加前缀https://
或"www.google.com"
。否则Flask会将其视为app中的相对url。
所以下面将是404,因为它将进入" localhost:5000 / www.google.com"
@app.route('/test') def test(): return redirect("www.google.com")
但如果您尝试http://
,它应该可以正常工作。
@app.route('/test') def test(): return redirect("http://www.google.com")
答案 1 :(得分:3)
请务必附加" http://"在重定向传递之前在网址前面。
s = form.next.data
if s is not None:
if s.find("http://") != 0 and s.find("https://") != 0:
s = "http://" + s
return redirect(s)