django - 重定向到外部网站时,url 被附加到请求的 url 的末尾
问题描述
我正在尝试将用户重定向到 URl,但它正在将我重定向到不正确的 url。
视图.py:
def redirect_shortner(request):
return redirect('www.google.com')
网址.py:
urlpatterns = [
path('', redirect_shortner, name='redirect_shortner'),
]
代码对我来说似乎是正确的,但用户被错误地重定向到当前 url 附加了指定 url 的 url,即用户被重定向到http://127.0.0.1:8000/www.google.com
当前http://127.0.0.1:8000/
url 的时间。
解决方案
当一个人想要重定向到其他网站时,应该为另一个网站上的页面提供绝对URL(请参阅问题Absolute vs relative URLs)。www.google.com
不是绝对 url,即它缺少协议,https://
因此它被视为来自用户当前所在页面的相对http://127.0.0.1:8000/www.google.com
url,因此解析为. 相反,您希望将重定向编写为绝对的:
def redirect_shortner(request):
return redirect('https://www.google.com/')
推荐阅读
- java - log4j 创建空日志文件
- python - 将缺失的日期添加到时间序列数据框
- javascript - 为什么使用 JQuery AJAX 会阻止这个承诺链工作?
- java - 使用 JJTree 创建 AST
- python - 使用 boto3 读取 DynamoDb 中 Array 内的数据映射
- android - Android PDF 到 Base64 的转换不起作用
- mongoose - AdonisJS RuntimeException:E_CANNOT_LOGIN:无法登录用户,因为未定义用户 ID
- flutter - 如何在颤振中使用地图来解决我遇到的问题
- xcode - Xcode:将随机显示的条目/文本从数据库保存到文件
- python - 如何正确键入提示键是 Type[T] 且值是该类型的泛型的 Python dict?