Tecnología

Cómo redirigir la dirección IP al nombre de dominio en NGINX o Apache – CloudSavvy IT

Cómo redirigir la dirección IP al nombre de dominio en NGINX o Apache - CloudSavvy IT

Logotipo de Nginx

Es un caso extremo, pero si alguien escribe su dirección IP en lugar de su nombre de dominio, querrá que su servidor maneje esa solicitud correctamente y lo redireccione al sitio real. Te mostramos cómo configurarlo en NGINX y Apache.

¿Por qué es esto necesario?

Para casi todas las solicitudes, es probable que los usuarios ingresen usando su nombre de dominio, por lo que realmente no verá este problema en la práctica. Pero es una solución fácil y no está de más agregar.

Puede configurar su servidor para escuchar específicamente su dirección IP y devolver una redirección 301 a su nombre real, lo que solucionará el problema y colocará el nombre de su sitio web en la barra de URL para cualquier solicitud de solo dirección IP.

Sin embargo, un método mejor y más completo es simplemente manejar todas las demás rutas devolviendo una redirección. De esta manera, cualquier usuario enviado a su dirección IP desde cualquier lugar (incluso con encabezados de host incorrectos) será redirigido. Por ejemplo, si deseas señalar ortografías alternativas de su dominio (es decir, howtogreek.com), a su dominio real, esta redirección predeterminada también funciona.

Configuración de una ruta predeterminada en NGINX

Si simplemente desea escuchar en la IP, puede usar la siguiente configuración, que devuelve un redireccionamiento 301 para las solicitudes realizadas específicamente a la 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;
}

Sin embargo, puede escuchar específicamente las no coincidencias usando server_name _, que solo coincide si ninguna otra regla lo hace. Puede devolver un redireccionamiento 301 de la misma manera:

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

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

Por supuesto, como con cualquier redireccionamiento 301, primero debe probar con redireccionamientos 302 temporales para asegurarse de que su configuración sea correcta.

Configuración de una ruta predeterminada en Apache

En Apache, puede redirigir las solicitudes de IP a su nombre de dominio agregando una regla de reescritura que coincida con la IP:

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

Si deseas redirigir todas las demás solicitudes, puede hacerlo haciendo coincidir todo lo que no es su nombre de dominio, aunque tenga cuidado de que no entre en conflicto con ningún subdominio.

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

Leave a Comment

You may also like

Más