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

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

Я перенаправляю все http:// запросы на https://, используя файл .conf хоста apache2, как показано ниже.

<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?

Пожалуйста помоги..

решение1

Вы хотите добавить перенаправление к существующему *:443vhost. Что-то вроде этого должно это сделать:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]

Поместите это перед любыми другими RewriteRuleразделами.

решение2

То, что у вас есть, уже правильно.

И вам нужно определиться *: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.

Связанный контент