【问题标题】:Apache redirect ServerAlias to ServerNameApache 将 ServerAlias 重定向到 ServerName
【发布时间】:2018-09-05 08:46:09
【问题描述】:

我通过 Let's Encrypt 安装了 SSL 证书。一切都很好,除了我的域的一些变体我从我的浏览器收到一条消息“你的连接不是私人的”。我认为这是因为我只是将流量重定向到 url 的 https 版本,而不是我的规范 url (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

我不是 apache 功夫大师,我正在努力通过修改当前设置来适应它。

【问题讨论】:

    标签: apache ssl-certificate


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-28
      • 2015-11-03
      • 1970-01-01
      • 2012-08-14
      • 2013-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多