У меня есть следующие настройки в 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 ответ1

0

Мое намерение состоит в том, чтобы перенаправить всех пользователей SSL с подстановочного поддомена на порт 80 автоматически (поскольку у меня нет подстановочного сертификата ssl и я не хочу, чтобы они видели сообщение об ошибке / предупреждение)

Любые перенаправления выполняются ПОСЛЕ установления соединения TLS. Таким образом, невозможно перенаправить пользователя из домена, для которого у вас нет сертификата, потому что сертификат необходим, прежде чем вы сможете перенаправить пользователя.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .