2011-11-29 93 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

非常感谢,我的工作符合你的规则。 –