Я пытаюсь получить все варианты
http://www.example.com
http://example.com
https://www.example.com
https://example.com
www.example.com
example.com
всем перенаправить на
https://www.example.com
У меня есть следующий блок mod_rewrite:
RewriteEngine on
ReWriteCond %{SERVER_PORT} !^443$
RewriteCond %{HTTP_HOST} ^([a-z.]+)?example.com$ [NC]
RewriteCond %{HTTP_HOST} example.com$ [NC]
RewriteRule .? https://www.example.com%{REQUEST_URI} [R=301,L]
который, кажется, делает все, кроме одного:
https://example.com
не перенаправляется на
https://www.example.com
как и ожидалось
Если я убрал условие:
ReWriteCond %{SERVER_PORT} !^443$
так что он влияет как на http, так и на https, он по-прежнему ведет себя не так, как ожидалось.
Где я ошибаюсь, пожалуйста? Спасибо
Вы не можете выполнить перенаправление с SSL на SSL, используя .httaccess
Вам нужно будет использовать отдельную запись VirtualHost для каждого домена (при условии, что ваш веб-сервер поддерживает SNI):
<VirtualHost *:443>
ServerName example.com
Redirect 301 / https://www.example.com
SSLCertificateFile /etc/ssl/example.com.crt
SSLCertificateKeyFile /etc/ssl/example.com.key
</VirtualHost>