У меня есть веб-приложение django, работающее на apache 2.2.14, и я хочу запустить приложение администратора через https.
Прочитав много дискуссий об использовании прокси, написании промежуточного программного обеспечения, запуске альтернативных сценариев wsgi, главы в #httpd пришли мне на помощь.Решение настолько простое, что я был удивлен, что не нашел его в Интернете, поэтому мне любопытно посмотреть, допустил ли я какие-то явные предположения или ошибки.
Одним из осложнений было то, что я тоже хотел запуститьодно из моих django-приложений на сайте через https, это все, что находится в /checkout.
По сути, если пользователь запрашивает URI, начинающийся с / admin или / checkout на http, они должны быть перенаправлены на этот URIно по https.И наоборот, если пользователь запрашивает URI, который не начинается с / admin или / checkout по https, они должны быть перенаправлены на этот URI, но по http.
Ключом к решению этой проблемы было использование Redirect иДирективы RedirectMatch в моей конфигурации VirtualHost.
<VirtualHost *:80>
... host config stuff ...
Redirect /admin https://www.mywebsite.com/admin
Redirect /checkout https://www.mywebsite.com/checkout
</VirtualHost>
<VirtualHost *:443>
... ssl host config stuff ...
RedirectMatch ^(/(?!admin|checkout).*) http://www.mywebsite.com$1
</VirtualHost>