Подстановочный SSL-сертификат - перенаправить http на https - PullRequest
0 голосов
/ 30 ноября 2011

У меня есть один виртуальный хост HTTPS для всех моих сайтов. Я пытаюсь перенаправить subsite2.server.co.uk с http на https.

Вот мой виртуальный хост HTTPS (я сократил его для краткости):

<VirtualHost _default_:443>   
    ServerName *.server.co.uk  
    ServerAdmin imran.azad@server.co.uk

    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^www.subsite1.server.co.uk$ [NC]
    RewriteRule ^(.*)$ http://localhost:8080/VirtualHostBase/https
    /www.subsite1.co.uk:443/Plone/VirtualHostRoot/$1 [L,P]

    RewriteCond %{HTTP_HOST} ^subsite2.server.co.uk$ [NC]
    RewriteRule ^(.*)$ http://subsite2.server.co.uk/$1 [P]

Вот мой виртуальный HTTP-хост:

<VirtualHost *:80>
    ServerName subsite2.server.co.uk
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
    Alias /static-dir/ x:/.....
    <Directory x:/.....>
        Order deny,allow
        Allow from all
    </Directory>
    WSGIScriptAlias / x:/......
    <Directory  x:/......>
        Order deny,allow
        Allow from all
    </Directory>
</VirtualHost> 

Я использую следующие условие и правило перезаписи для перенаправления:

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

Однако проблема, с которой я столкнулся, заключается в том, что кажется, что сервер находится в цикле перенаправления. Как я могу обойти эту проблему?

Вот ошибка из Firefox:

The page isn't redirecting properly

1 Ответ

1 голос
/ 30 ноября 2011

Мой работает с использованием чего-то похожего, я думаю, попробуйте использовать вместо этого регулярное выражение REQUEST_URI

RewriteEngine On
RewriteCond %{HTTP_HOST} =myhost.com
RewriteCond %{SERVER_PORT} !443
RewriteRule /(.*) https://%{SERVER_NAME}/$1 [R,L]
...