Как перенаправить ваш IP-адрес на ваше доменное имя – CloudSavvy IT

Логотип Nginx

Это крайний случай, но если кто-то введет ваш IP-адрес вместо вашего доменного имени, вы захотите, чтобы ваш сервер правильно обработал этот запрос и перенаправил их на реальный сайт. Мы покажем, как настроить его в NGINX и Apache.

Зачем это нужно?

Почти по каждому запросу пользователи, вероятно, приходят, используя ваше доменное имя, поэтому вы не увидите эту проблему на практике. Но это легко исправить, и добавить не мешало бы.

Вы можете настроить свой сервер так, чтобы он прослушивал ваш IP-адрес и возвращал перенаправление 301 на ваше настоящее имя, что устранит проблему и поместит имя вашего веб-сайта в строку URL для любых запросов только по IP-адресу.

Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)

Тем не менее, лучший и более полный метод состоит в том, чтобы просто обрабатывать все другие маршруты, возвращая перенаправление. Таким образом, любые пользователи, отправленные на ваш IP-адрес из любого места (даже с неправильными заголовками узлов), будут перенаправлены. Например, если вы хотите указать альтернативное написание вашего домена (то есть, howtogreek.com), в ваш реальный домен, это перенаправление по умолчанию также работает.

Настройка маршрута по умолчанию в NGINX

Если вы просто хотите прослушивать IP-адрес, вы можете использовать следующую конфигурацию, которая возвращает перенаправление 301 для запросов, сделанных специально к IP-адресу:

server {
  listen 80;
  listen [::]:80;
  server_name 123.123.123.123;
 
  add_header X-Frame-Options "SAMEORIGIN";

  return 301 https://www.example.com$request_uri;
}

Тем не менее, вы можете специально прослушивать несоответствия, используя server_name _, который соответствует, только если нет другого правила. Вы можете вернуть редирект 301 таким же образом:

server {
  listen 80 default_server;
  listen [::]:80 default_server;
  server_name _;

  return 301 https://www.example.com$request_uri;
}

Конечно, как и при любом перенаправлении 301, вы должны сначала протестировать временные перенаправления 302, чтобы убедиться в правильности конфигурации.

Настройка маршрута по умолчанию в Apache

В Apache вы можете перенаправить IP-запросы на ваше доменное имя, добавив правило перезаписи, соответствующее IP:

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

Если вы хотите перенаправить все остальные запросы, вы можете сделать это, сопоставив все, что не Ваше доменное имя, но будьте осторожны, чтобы оно не конфликтовало с какими-либо поддоменами.

RewriteEngine on
RewriteCond %{SERVER_NAME} !=www.example.com
RewriteRule ^ https://www.example.com%{REQUEST_URI} [END,NE,R=301]

Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *