使用http时,Apache显示默认页面而不是https

时间:2012-10-10 23:49:34

标签: apache mod-rewrite https virtualhost

我正在尝试将所有foo.mydomain.com请求重定向到https://foo.mydomain.com

我的VirtualHost包含这个:

<VirtualHost *:443>
    ServerName foo.mydomain.com

    # Indexes + root dir
    DirectoryIndex index.html
    DocumentRoot /home/web/foo.mydomain.com/htdocs

    SSLEngine on

    SSLCertificateFile /etc/apache2/ssl/server.crt
    SSLCertificateKeyFile /etc/apache2/ssl/server.key

    SSLVerifyClient none

    <IfModule mime.c>
            AddType application/x-x509-ca-cert      .crt
            AddType application/x-pkcs7-crl         .crl
    </IfModule>

    # Logfiles
    ErrorLog /home/web/foo.mydomain.com/logs/error.log
    CustomLog /home/web/foo.mydomain.com/logs/access.log combined
</VirtualHost>

所以现在我正在尝试使用此.htaccess文件中的mod_rewrite将所有http请求重定向到https:

Options FollowSymLinks
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://foo.mydomain.com

有谁知道我做错了什么?提前谢谢!

1 个答案:

答案 0 :(得分:0)

在非https站点的虚拟主机配置中尝试以下操作。

即。我这样做的设置是:

<VirtualHost *:80>
RewriteCond %{SEVER_PORT} !^443$
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
.....
</VirtualHost>

这应该将所有传入的http请求重定向到https。然后在端口443的配置中,您可以做任何您需要的事情......

注意:也应该在htaccess中工作。

希望有所帮助。不确定你的'默认页面'是什么意思,但是标题和代表太低以留下评论......

让我知道......

干杯

罗宾