Я перенаправляю весь http: // запрос на https: // с помощью файла apache2 host .conf, подобного этому.
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
Redirect / https://www.example.com/
</VirtualHost>
<VirtualHost *:443>
ServerName www.example.com
#more details here
</VirtualHost>
Это работает нормально и перенаправляет все запросы на https: //
Теперь я хочу перенаправить свой запрос без www на www (так https://example.com к https://www.example.com). Я попытался добавить эти строки ниже до, а затем после блока 443 выше. Но не повезло :(
<VirtualHost *:443>
ServerName example.com
Redirect / https://www.example.com/
</VirtualHost>
Любая идея, как я могу включить это без .htaccess.
Пожалуйста помоги..
То, что у вас есть, уже правильно.
И вам нужно определить *:443
с участием NameVirtualHost
.
Используйте эту конфигурацию, где # more details here
это вся ваша настройка SSL, поскольку у вас уже есть:
NameVirtualHost *:443
<VirtualHost *:443>
ServerName www.example.com
# more details here
</VirtualHost>
<VirtualHost *:443>
ServerName example.com
Redirect / https://www.example.com/
# more details here
</VirtualHost>
Вам понадобятся данные вашего сертификата SSL в каждый VirtualHost
контейнер, даже если они одинаковые.
пожалуйста не используйте дополнительные адреса IPv4 - этот вариант использования не требует использования дополнительных IP-адресов. HTTP / 1.1 может обрабатывать несколько доменов на одном IP-адресе, в том числе с SSL.
Вы хотите добавить перенаправление к существующему *:443
vhost. Что-то вроде этого должно сработать:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]
Поместите это перед любым другим RewriteRule
разделы.