Django 1.4 - 重定向到非 HTTP url

Posted

技术标签:

【中文标题】Django 1.4 - 重定向到非 HTTP url【英文标题】:Django 1.4 - Redirect to Non-HTTP urls 【发布时间】:2013-01-11 14:31:15 【问题描述】:

我们有一个重定向到非 HTTP url 方案的视图。它用于ios应用程序。但是由于我们已经升级到 Django1.4,所以在执行此重定向代码时会发生崩溃。它与

一起崩溃

/myyrlscheme/ 的可疑操作

使用方案 appdev 不安全地重定向到 URL:

以下是代码:

if acode and acode.has_key('access_token'):
    if DOMAIN == 'dev.mywebsite.com':
        return HttpResponseRedirect('appdev://fbconnect?token=%s'%(acode['access_token']))
    else:
        return HttpResponseRedirect('app://fbconnect?token=%s'%(acode['access_token']))

我可以理解为什么这会崩溃,因为 HttpResponseRedirect 需要 HTTP(s) url 方案。我如何告诉 Django 这是一个安全的 url 并且只是盲目地重定向?

【问题讨论】:

【参考方案1】:

我相信您需要有一个自定义 Response 对象,请考虑以下:

response = HttpResponse("", status=302)
response['Location'] = "appdev://..."
return response

【讨论】:

以上是关于Django 1.4 - 重定向到非 HTTP url的主要内容,如果未能解决你的问题,请参考以下文章

302重定向到非HTTP协议

IIS 将 www 重定向到非 www 和 http 到 https:是不是可以仅使用一个重定向来完成?

apache将http重定向到https,将www重定向到非www

如何通过 web.config 将 http 重定向到 https 并将 www 重定向到非 www?

将 https 重定向到非 www 和 http 到 www

iis url 将 http 重定向到非 www https