Назад | Перейти на главную страницу

Перенаправить на https: // с www apache2

Я перенаправляю весь 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 разделы.