Apache将ServerAlias重定向到ServerName

时间:2018-03-27 04:40:11

标签: apache ssl-certificate

我通过Let's Encrypt安装了SSL证书。一切都很棒,除了我的域名的一些变化我从我的浏览器收到一条消息"你的连接不是私密的"。我认为这是因为我只是将流量重定向到网址的https版本而不是我的规范网址(ServerName)。

这是我的apache文件的设置。在端口80上有一些重定向,将流量转发到端口443。

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    ServerAlias dev.example.com

    [... some other stuff... ]

    RewriteEngine On
    CustomLog /var/log/apache2/serviam2/access.log combined
    RewriteCond %{SERVER_NAME} =example.com [OR]
    RewriteCond %{SERVER_NAME} =www.example.com [OR]
    RewriteCond %{SERVER_NAME} =dev.example.com
    RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

以下是重要部分: 所有流量都被重定向到443版本(这很好),但我也希望所有ServerAlias都重定向到ServerName。

因此...... http://dev.example.com应该重定向到https://example.com

此外,https://dev.example.com应重定向到https://example.com

我不是阿帕奇功夫大师,我正在努力通过修改当前的设置来使其适应。

1 个答案:

答案 0 :(得分:-1)

您需要将%{SERVER_NAME}中的RewriteRule更改为目标域,例如:

RewriteRule ^ https://example.com%{REQUEST_URI} [END,NE,R=permanent]