2009-12-10 2 views
0

У меня есть сайт для статического контента, доступный для всех, что работает на apache. В качестве дополнения к этому, есть сайт участников, который работает на django. У меня не было никаких проблем с «совместным использованием» моего .css и с учетом того, что обе стороны эквивалентны по внешнему виду, но то, что я не могу представить, похоже на то, что мой сайт django защищен паролем django (с дополнительным предупреждением о том, что все материалы участника , начиная с входа в систему, проходит через 443).статический сайт apache и динамический/член-сайт django

я могу служить все страницы, я пытался использовать mod_rewrite следующим образом:

<Directory /Library/Webserver/Documents> 
. 
. 
. 
</Directory> 

WSGIScriptAlias /members /usr/local/django/mysite/apache/django.wsgi 


<Directory /members> 
    RewriteCond %{HTTPS} off 
    RewriteRule (.*) https://{HTTP_HOST}%{REQUEST_URI} [L] 
. 
. 
</Directory> 

Я пытался каждый один из тысячи различных предметов, в «/ членов местоположения выше, ничего, кажется, попал (и да, включен RewriteEngine On - я могу посмотреть, как вышла отладка).

ответ

0

Try:

RewriteEngine On 
RewriteCond %{HTTPS} off 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} 

Вы должны перенаправлять обратно на том же хосте запрос был сделан против, не обязательно фактического хоста веб-сервера.

Я также не верю, что в mod_rewrite есть переменная% {URI}. Предполагается использовать% {REQUEST_URI}.


EDIT 1

Согласно комментариям, должно быть:

<Location /members> 
    RewriteCond %{HTTPS} off 
    RewriteRule (.*) https://{HTTP_HOST}%{REQUEST_URI} [L] 
. 
. 
</Location> 

или:

<Directory /usr/local/django/mysite/apache> 
    RewriteCond %{HTTPS} off 
    RewriteRule (.*) https://{HTTP_HOST}%{REQUEST_URI} [L] 
. 
. 
</Directory> 

Так, Location для URL и каталогов для каталога файловой системы.

+0

Извините, часть того, что я делал, была из памяти, у меня не было машины прямо передо мной. Это не переписывание/переписывание, которое меня озадачило, это заставляет их стрелять. Я разместил их во всех возможных конфигурациях , и они никогда не попадают. (Небольшое пояснение, если я делаю это с помощью обычного каталога, он работает нормально, похоже, что я не могу установить правильную структуру DJANGO , чтобы разместить вышеприведенные строки.) – KevinDTimm

+0

Это потому, что вы должны использовать «Местоположение ', а не' Directory ', если аргументом является URL. Если вы хотите использовать «Каталог», это должно быть местоположение файла сценария WSGI, но тогда вы не можете ограничить его суб-URL всего сайта. Итак, используйте «Местоположение». Перейдите к документации Apache по разнице между «Location» и «Directory». –

+0

Грэм, спасибо миллион - дайте мне немного прочитать, а затем вернитесь и отметьте свой ответ. Ваша репутация предшествует вам, поэтому я уверен, что это будет короткий поиск. – KevinDTimm

Смежные вопросы