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

Перенаправление Apache на IP-адрес (не URL)

Я пытался перенаправить веб-трафик с HTTP к HTTPS добавив строку в httpd.conf файл:

Redirect permanent / https://100.100.100.100

но безрезультатно. Ответ браузера: Firefox has detected that the server is redirecting the request for this address in a way that will never complete.

Я понимаю, что это работает для доменных имен, но мой сервер их не использует. Есть ли способ обойти это / что я делаю не так.

Я подозреваю, что ваша строка Redirect находится в части конфигурационного файла, которая влияет как на SSL, так и не на SSL. Следовательно, даже когда вы запрашиваете версию SSL, вы все равно получаете перенаправление на версию SSL.

Если у вас есть часть файла конфигурации, не предназначенная только для SSL, переместите туда перенаправление. Если нет, преобразуйте его в RewriteRule и используйте RewriteCond перед ним следующим образом:

RewriteCond %{HTTPS} off
RewriteRule / https://100.100.100.100/ [R=301]

В Apache есть специальная страница под названием "Когда не использовать mod_rewrite"

Следуйте их примеру

Чтобы перенаправить URL-адреса http на https, сделайте следующее:

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

<VirtualHost *:443>
    ServerName www.example.com
    # ... SSL configuration goes here
</VirtualHost >

Используйте mod_rewrite:

   RewriteEngine On
   RewriteCond %{SERVER_PORT} 80
   RewriteRule ^(.*)$ https://%{SERVER_NAME}$1 [R,L]