Как предоставить канонический URL с помощью Django HttpResponseRedirect?
этот вопрос очень похож на тот, который я только что задал href: могу ли я получить результаты поиска Google для использования/отображения окончательного url-адреса перенаправления?, но теперь вопрос специфичен для Django.
мой сайт имеет URL-адреса веб-страниц, которые используют следующий формат:
www.mysite.com/id/pretty_title
первая страница ссылается на эти страницы, но href фактически содержит некоторые параметры:
www.mysite.com/id/?some_ugly_parameters_to_let_me_know_what_search_it_is_from
Это затем перенаправляет на
www.mysite.com/id/pretty_title
что показывает страница.
моя проблема в том, что Результаты поиска Google показывают ссылку на страницу как уродливый url вместо довольно перенаправленного.
Я узнал, что мне нужно предоставить каноническую ссылку. Но как я могу это сделать, когда уродливая страница url никогда не существует, по крайней мере, не как та, которую я написал?
что происходит на стороне сервера, так это то, что вид уродливого url делает перенаправление:
return HttpResponseRedirect(pretty_url)
2 ответов
вы можете просто поместить его как часть HTML, возвращенного из шаблона Django, в .
У вас есть base.html
в Джанго? Вы можете настроить {% block %}
в качестве заполнителя для канонического URL-адреса, а затем установите это значение на каждой отдельной странице, что {% extends base.html %}
базы.HTML-код
<html>
<head>
<link rel="canonical" href="{% block canonical_url %}{% endblock %}">
</head>
...
Я думаю, что это правильный встроенный тег шаблона, который вы ищете. {{ запрос.build_absolute_uri }}