Использую Apache 2.4 и мой сайт работаетwww.example.com, который автоматически перенаправляется наhttps://www.example.com, при этом он полностью доступен и функционален.
Однако, когда я явно пытаюсь использоватьhttp://example.comилиhttps://example.com, меня встречает страница-заполнитель.
Мне бы хотелось перенаправить адреса без www на www. Например (https://example.com->https://www.example.com
Я настроил правило перезаписи в моем файле .conf, но по какой-то причине оно не работает. Все, что я вижу, это страница-заполнитель при доступе без www.
<VirtualHost <ip>:80>
ServerName www.example.com
ServerAlias example.com
# Redirect to www
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} !^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
Redirect permanent / https://www.example.com/
</VirtualHost>
<VirtualHost <ip>:443>
ServerName www.example.com
ServerAlias example.com
SSLCertificateFile /home/admin/certs/www_example_com.crt
SSLCertificateKeyFile /home/admin/certs/www_example_com.key
SSLCACertificateFile /home/admin/certs/DigiCertCA.crt
SSLEngine on
SSLProtocol +TLSv1.2 -TLSv1.1 -TLSv1 -SSLv3 -SSLv2
DirectoryIndex index.php index.html index.htm
# redirect to www
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} !^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]
решение1
Вы забыли активировать RewriteEngine.
RewriteEngine on