2011-11-29 135 views
0

我的所有網站都有一個HTTPS虛擬主機。我正在嘗試將http從https重定向到subsite2.server.co.uk。通配符SSL證書 - 將http重定向到https

這裏是我的HTTPS虛擬主機(我縮短了它簡潔):

<VirtualHost _default_:443> 
    ServerName *.server.co.uk 
    ServerAdmin [email protected] 

    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

礦正在使用類似的東西,我的猜測是,請嘗試使用正則表達式匹配,而不是REQUEST_URI

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

此外,您可以安裝Live HTTP頭插件(tools/live http頭文件),並提供整個請求(包含重定向)跟蹤? – 131

+0

非常感謝,我的工作符合你的規則。 –