У меня проблема с простой конфигурацией apache.
Когда пользователь просит https://mydomain.com я должен перенаправить его на https://www.mydomain.com, потому что мой https-сертификат действителен только для домена с www.
Я создаю vhost.conf в моем каталоге /var/www/vhosts/mydomain.com/conf/, внутри которого:
<Directory /var/www/vhosts/mydomain.com/httpsdocs>
AllowOverride All
</Directory>
И мой файл .htaccess в /var/www/vhosts/mydomain.com/httpsdocs/:
RewriteEngine on
RewriteCond %{HTTPS_HOST} ^mydomain\.com
RewriteRule ^(.*)$ https://www.mydomain.com/$1 [R=301,L]
Но похоже, что .htaccess полностью игнорируется.
Любая идея?
Порядок https-соединения примерно
Таким образом, сообщение об ошибке уже появилось бы до того, как соединение станет достаточно большим, чтобы mod_rewrite сработал. Чтобы предотвратить возникновение ошибок, вам нужно будет получить сертификат с альтернативными именами субъектов (т.е. работает как для www, так и для не-www) или использовать SNI (добавляет дополнительный шаг в согласовании SSL, где браузер может сообщить Apache, какое имя хоста хочет, а Apache может выбрать соответствующий сертификат).
Кроме того, переменная всегда называется% {HTTP_HOST}, даже если соединение HTTPS (поскольку это просто сокращение для «HTTP внутри туннеля SSL»).