У меня есть сервер Media Temple DV, на котором размещен dev.example.com с django, смонтированным в /. В моих httpsdocs есть устаревшая директория, которую я должен продолжать обслуживать в / legacy. Но для этого каталога мне нужно перенаправить всех, кто переходит по http на https, а затем запросить http Basic Auth.
В виртуальном хосте я указываю рут на приложение django:
WSGIScriptAlias / /var/django-projects/myproject/apache/django.wsgi
<Directory /var/django-projects/myproject/apache>
Order allow,deny
Allow from all
</Directory>
Затем я создаю псевдоним устаревшего каталога. Обратите внимание, что в файловой системе существуют как ... httpdocs / legacy, так и ... httpsdocs / legacy. ... httpdocs / legacy содержит файл .htaccess. ... httpsdocs / legacy содержит документы, которые я пытаюсь обслуживать.
Alias /legacy/ /var/www/vhosts/example.com/subdomains/dev/httpdocs/legacy/
<Directory /var/www/vhosts/example.com/subdomains/dev/httpdocs>
Order deny,allow
Allow from all
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://dev.example.com/$1 [R,L]
</Directory>
Это работает. Он не обслуживается Django, а URL-адрес перенаправляется на https. Тем не менее, он обслуживает httpdocs / legacy вместо httpsdocs / legacy (где у меня есть .htaccess, который запрашивает аутентификацию)
Есть идеи, как мне с этим справиться?