Перенаправление HTTP на HTTPS даже для IP

Я уже прочитал много вопросов по базовому перенаправлению http -> https, но все они говорят о перенаправлении / перезаписи, включая только доменное имя.

<VirtualHost *:80>
ServerName www.example.com
Redirect / https://www.example.com/

Например, этот фрагмент выше будет перенаправлять все запросы с http: www.example.com на https: www.example.com. Это, конечно, рекомендуемый способ apache .

Но как бы нам перенаправить http на https, даже если запрос основан на IP? Например, http: ip в https: ip. Как этого добиться? Я знаю, что https предназначен для доменного имени, но у меня есть это конкретное требование, чтобы клиент мог получить доступ по IP.

0
задан 13 March 2017 в 05:17
3 ответа

Запросы по ip-адресу (или HTTP 1. 0 запросов без заголовка Host:, а также запросы для неизвестных доменов обрабатываются виртуальным хостом по умолчанию VirtualHost , который по умолчанию имеет значение first VirtualHost, если не задан явно с помощью:

<VirtualHost _default_:*>
    Redirect / https://www.example.com/
    ...
</VirtualHost>

Таким образом, в зависимости от текущей конфигурации:

  • вам, возможно, не потребуется ничего делать для обработки запросов, использующих ip-адрес (i. e. когда у вас только один VirtualHost или www.example.com уже является первой записью)
  • или вы можете перезаказать текущие записи VirtualHost так, чтобы www.example.com стал первой записью VirtualHost
  • явно определял _default_:80 VirtualHost
2
ответ дан 4 December 2019 в 16:20

Если у вас только один IP-адрес, вы можете использовать нечто подобное (НЕ ПРОВЕРКИРОВАННОЕ):

<VirtualHost *:80>
ServerName www.example.com
ServerAlias *
RewriteCond %{HTTP_HOST}   !^$
RewriteRule ^/(.*)         https://%{HTTP_HOST}/$1 [L,R]
-1
ответ дан 4 December 2019 в 16:20

Просто напишите в конце файла http.conf .

##this is for http redirection to domain name###
<VirtualHost *:80>
ServerName www.example.com
ServerAlias *
Redirect / https://www.example.com/
</VirtualHost>

##This is for https redirection to domain name###
<VirtualHost *:443>
ServerName www.example.com
ServerAlias *
Redirect / https://www.example.com/
</VirtualHost>
0
ответ дан 4 December 2019 в 16:20

Теги

Похожие вопросы