У меня есть следующие настройки в 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 и я не хочу, чтобы они видели сообщение об ошибке / предупреждение)