我正在尝试用Apache 2.4重写URL。我希望该请求


http://subdomain.domain.com
http://www.subdomain.domain.com
https://www.subdomain.domain.com


重新映射到

https://subdomain.domain.com

为避免SSL通配符证书中的错误与www.subdomain.domain.com不匹配。

我尝试过:

    <VirtualHost ip:80>
        ServerName subdomain.domain.com
        RewriteEngine On
        RewriteCond %{HTTPS} off
        RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
   </VirtualHost>
   <VirtualHost ip:80>
        ServerName www.subdomain.domain.com
        Redirect permanent / https://subdomain.domain.com
   </VirtualHost>
   <VirtualHost ip:443>
        ServerName www.subdomain.domain.com
        Redirect permanent / https://subdomain.domain.com
   </VirtualHost>
  <VirtualHost ip:443>
        ServerName subdomain.domain.com
        ...
        ...
        ...


我的配置适用于(1)和(2),但不适用于(3)。我的错误在哪里?

最佳答案

我认为问题在于您的端口443虚拟主机之一没有启用SSL。

尝试这个

<VirtualHost ip:443>
    ServerName www.subdomain.domain.com
    Redirect permanent / https://subdomain.domain.com
    SSLEngine on
    SSLCertificateFile    /something
    SSLCertificateKeyFile /something
</VirtualHost>


否则,由于该请求已加密,因此根本无法理解该请求。

请参阅例如How to redirect https to http without any SSL Certificate以了解为什么有必要这样做。

08-05 01:06
查看更多