使用SSL从非www重定向到www

时间:2016-08-23 17:05:18

标签: apache redirect mod-rewrite ssl

我有一个托管我的HTML网站的Apache服务器。我目前在www.mysite.com上设置了SSL。它还会从http://example.com重定向到https://www.example.com

但是,我有两个问题:

首先,我无法弄清楚如何重定向:

其次,www重定向也不会发生我导航到:

以下是我的httpd.conf文件的相关部分。

<VirtualHost *:80>
  ServerName default
  ServerAlias *
  <IfModule mod_rewrite.c>
    RewriteEngine on
    # WITH 'www.'
    RewriteCond %{HTTP_HOST} !^www.(.*) [nocase]
    RewriteRule ^(.*)$ http://www.%{HTTP_HOST}$1 [redirect=permanent,nocase,last]
  </IfModule>
</VirtualHost>

<VirtualHost *:443>
    ServerName www.exampe.com
    SSLENGINE on
    SSLCertificateFile /etc/pki/tls/signed/my.crt
    SSLCertificatekeyFile /etc/pki/tls/signed/my.key.csr
    SSLCertificateChainFile /etc/pki/tls/signed/my.ca-bundle
</VirtualHost>

有没有人知道如何修改上述VirtualHost元素以包含https重定向(项目符号点1),并为启用了ssl的非www形式的网址启用重定向(项目符号点) 2)?

1 个答案:

答案 0 :(得分:0)

对于第一种情况,删除IfModule和mod_rewrite混乱并将其添加到非SSL虚拟主机中:

var i=0;
function callthis(){
i++;
if(i==1){
//first
}
if(i==2){
//second
}
if(i==3){
//third
}
}

对于第二种情况,请在SSL VirtualHost中添加:

Redirect / https://www.example.com/