Agence web » Actualités du digital » Comment rediriger votre adresse IP vers votre nom de domaine

Comment rediriger votre adresse IP vers votre nom de domaine

comment-rediriger-votre-adresse-ip-vers-votre-nom-de-domaine-6120694

Il s'agit d'un cas périphérique, mais si quelqu'un saisit votre adresse IP au lieu de votre nom de domaine, vous souhaiterez que votre serveur traite correctement cette demande et les redirige vers le site réel. Nous allons montrer comment le configurer dans NGINX et Apache.

Pourquoi est-ce nécessaire?

Pour presque toutes les demandes, les utilisateurs utilisent probablement votre nom de domaine, vous ne verrez donc pas vraiment ce problème dans la pratique. Mais, c'est une solution facile, et cela ne fait pas de mal à ajouter.

Vous pouvez configurer votre serveur pour écouter spécifiquement votre adresse IP et renvoyer une redirection 301 vers votre vrai nom, ce qui résoudra le problème et mettra le nom de votre site Web dans la barre d'URL pour toute demande d'adresse IP uniquement.

Cependant, une méthode meilleure et plus complète consiste à gérer simplement toutes les autres routes en renvoyant une redirection. De cette façon, tous les utilisateurs envoyés à votre adresse IP de n'importe où (même avec des en-têtes d'hôte incorrects) seront redirigés. Par exemple, si vous souhaitez pointer d'autres orthographes de votre domaine (c'est-à-dire howtogreek.com) vers votre domaine réel, cette redirection par défaut fonctionne également.

Configuration d'une route par défaut dans NGINX

Si vous souhaitez simplement écouter sur l'IP, vous pouvez utiliser la configuration suivante, qui renvoie une redirection 301 pour les demandes adressées spécifiquement à l'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;
}

Cependant, vous pouvez spécifiquement écouter les non-correspondances en utilisant server_name _, qui ne correspond que si aucune autre règle ne le fait. Vous pouvez renvoyer une redirection 301 de la même manière:

server {
  listen 80 default_server;
  listen (::):80 default_server;
  server_name _;

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

Bien sûr, comme pour toute redirection 301, vous devez d'abord tester avec des redirections 302 temporaires pour vous assurer que votre configuration est correcte.

Configuration d'une route par défaut dans Apache

Dans Apache, vous pouvez rediriger les demandes IP vers votre nom de domaine en ajoutant une règle de réécriture qui correspond à l'IP:

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

Si vous souhaitez rediriger toutes les autres demandes, vous pouvez le faire en faisant correspondre tout ce qui n'est pas votre nom de domaine, mais veillez à ce que cela n'entre en conflit avec aucun sous-domaine.

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

★★★★★