使用通配符子域名从安全站点重定向到非安全站点

使用通配符子域名从安全站点重定向到非安全站点

我在 apache2.conf 中进行了以下设置:

<Directory /var/www/html>
    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^(www\.|)mydomain\.com$
    RewriteCond %{SERVER_PORT} !^443$
    RewriteRule ^/?(.*) https://www.mydomain\.com [NC,R=302,L]
</Directory>

<VirtualHost *:443>
    ServerName mydomain.com:443
    ServerAlias www.mydomain.com
    VirtualDocumentRoot /var/www/html/%1/
    SSLCertificateFile /etc/ssl/certs/mydomain_com.crt
    SSLCertificateKeyFile /etc/ssl/private/www.mydomain.com.key
    SSLCertificateChainFile /etc/ssl/certs/mydomain.com.ca-bundle
</VirtualHost>

<VirtualHost *>
    ServerAlias *.mydomain.com
    UseCanonicalName Off
    VirtualDocumentRoot /var/www/html/%1/

    <Directory /var/www/html/%1>
        RewriteCond %{SERVER_PORT} ^443$ [OR]
        RewriteCond %{HTTPS} =on
        RewriteRule ^(.*)$ http://%{HTTPS_HOST}%{REQUEST_URI} [NC,R=301,L]
    </Directory>

</VirtualHost>

我拥有所需的所有行为/功能,只是我无法使我创建的最后一条重写规则正常工作。我的目的是将通配符子域上的任何 SSL 用户自动重定向到端口 80(因为我没有通配符 SSL 证书,并且我不希望他们看到错误/警告)

答案1

我的目的是将通配符子域上的任何 SSL 用户自动重定向到端口 80(因为我没有通配符 SSL 证书并且我不希望他们看到错误/警告)

任何重定向都已完成TLS 连接已建立。因此,无法将用户从您没有证书的域中重定向出去,因为您需要证书才能重定向用户。

相关内容