Django относительные URL и https - PullRequest
1 голос
/ 10 ноября 2010

У меня есть проект Django, использующий https для определенной части URL (/ account /, / admin /, /purchase/).

Когда на одной из этих страниц в режиме https все относительные внутренниессылки {% url foo%} будут указывать на https://my_url.

Однако я не хочу, чтобы эти страницы отображались как https: home, contacts ...

Что такоерешения для такого рода требований?

Обеспечение абсолютного URL?

 http://{{ domain }}{% url foo %} 

не слишком приятно.

Ответы [ 5 ]

4 голосов
/ 10 ноября 2010

Как предлагает Томаш, один из способов сделать это - настроить промежуточное ПО для перенаправления на https и из https по мере необходимости.Вот одна реализация - идея состоит в том, чтобы украсить те представления, которые должны обслуживаться по протоколу https, и когда пользователь переходит к представлению, которое не должно быть защищенным от того, которое есть, промежуточное программное обеспечение автоматически перенаправляет их обратно наhttp-версия страницы.

4 голосов
/ 10 ноября 2010

Идея: вы можете использовать пользовательское промежуточное ПО для перенаправления с https на http (или наоборот) для URL-адресов centrain или шаблонов URL. Это также можно сделать в конфигурации Apache (или другого веб-сервера).

2 голосов
/ 10 ноября 2010

может быть, это может служить вам

http://code.djangoproject.com/wiki/ContributedMiddleware#SSLMiddlewarebyStephenZabel

предоставленное промежуточное ПО SSL

2 голосов
/ 10 ноября 2010

Я нахожу этот фрагмент хорошо заботится о ситуации.Представления, которым требуется SSL, получат их через перенаправление с URL-адреса http на https и наоборот.

Да, на странице https исходящая ссылка на страницу, отличную от https, по-прежнему будет начинаться с https, но пользователь будет перенаправлен на версию http.

(тамоднако, это недочет: он не будет работать, если вы отправляете сообщения с http на https и наоборот)

2 голосов
/ 10 ноября 2010

Может использовать ваш веб-сервер для перезаписи на http, поэтому Django даже не нужно знать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...