C'est un cas limite, mais si quelqu'un tape 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 tous demande, les utilisateurs viennent probablement en utilisant 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 d'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 placera le nom de votre site Web dans la barre d'URL pour toute demande d'adresse IP uniquement.
< p>Cependant, une méthode meilleure et plus complète consiste simplement à gérer toutes les autres routes en renvoyant une redirection. De cette façon, tous les utilisateurs envoyés à votre adresse IP depuis n'importe où (même avec des en-têtes d'hôte erronés) seront redirigés. Par exemple, si vous vouliez faire pointer des orthographes alternatives 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 requêtes adressées spécifiquement à l'IP :
serveur { écouter 80; écoutez [::]:80; nom_serveur 123.123.123.123; add_header X-Frame-Options “SAMEORIGIN” ; renvoie 301 https://www.example.com$request_uri ; } Publicité
Cependant, vous pouvez spécifiquement écouter les non-correspondances à l'aide de 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; écouter [::]:80 default_server; nom du serveur _; renvoie 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'un Route par défaut dans Apache
Dans Apache, vous pouvez rediriger les requêtes 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 requêtes, 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]