use*_*003 6 django httpresponse
这个问题与我刚才问过的问题非常相似:我可以使用Google搜索结果来显示最终的重定向网址吗?,但现在问题是Django特有的.
我的网站的网页网址使用以下格式:
www.mysite.com/id/pretty_title
Run Code Online (Sandbox Code Playgroud)
首页链接到这些页面,但href实际上包含一些参数:
www.mysite.com/id/?some_ugly_parameters_to_let_me_know_what_search_it_is_from
Run Code Online (Sandbox Code Playgroud)
然后重定向到
www.mysite.com/id/pretty_title
Run Code Online (Sandbox Code Playgroud)
显示页面.
我的问题是 Google的搜索结果显示该页面的链接是丑陋的网址,而不是漂亮的重定向网址.
我所学到的是我需要提供规范链接.但是,当丑陋的网页从未真正存在时,我怎么能这样做,至少不是我写的那个?
服务器端发生的事情是丑陋网址的视图会重定向:
return HttpResponseRedirect(pretty_url)
Run Code Online (Sandbox Code Playgroud)
您可以将它作为Django模板返回的HTML的一部分放在该<head>部分中.你有没有base.html在你的Django?您可以设置一个{% block %}作为规范URL的占位符,然后在每个单独的页面中设置该值{% extends base.html %}
base.html文件
<html>
<head>
<link rel="canonical" href="{% block canonical_url %}{% endblock %}">
</head>
...
Run Code Online (Sandbox Code Playgroud)