¿Cómo redirigir URL usando NGINX? (Temporalmente permanente)

Publicado: 2024-01-26

Tabla de contenido
¿Qué es la redirección?
¿Cuál es la necesidad de la redirección de Nginx?
Métodos comunes de redirección de Nginx (temporales y permanentes)
Cómo redirigir URL usando Nginx (temporal y permanente)
Verifique la sintaxis de Nginx
Reiniciar el servidor Nginx
Resumen
Preguntas frecuentes

¿Qué es la redirección?

En cuanto a Nginx, la redirección es una función del servidor web en la que el tráfico del sitio web se mueve de una URL a otra. Es una de las funciones más útiles a través de la cual puede redirigir fácilmente a los visitantes a otra ubicación de forma automática.

Aunque existen numerosos tipos de redirecciones que puede realizar, las dos más importantes y más utilizadas son la redirección permanente (301) y la temporal (302).

En esta publicación, le mostraremos métodos de redirección con ejemplos como, de www a no www, redirección de Nginx a un dominio, redirección de Nginx de HTTP a HTTPS, etc.


Leer: ¿Cómo funciona la URL de redireccionamiento de WordPress? 5 mejores métodos


¿Cuál es la necesidad de la redirección de Nginx?

  • Nginx proporciona una de las características cruciales, es decir, redirigir las URL del sitio web a otra dirección según criterios.
  • Las redirecciones de Nginx son muy fáciles de usar y de configurar, por lo que es muy flexible administrar las URL de los sitios web.
  • Es muy útil para preservar la clasificación SEO de una página, especialmente si estás migrando de un CMS a otro.
  • La función de redirección también ayuda a mantener la posición SERP a pesar de los cambios en la estructura de la URL.

Métodos comunes de redirección de Nginx (temporales y permanentes)

Como ya hemos mencionado, existen varios tipos de métodos de redirección disponibles, pero en la práctica, sólo hay dos de uso común, es decir, redirección temporal y permanente.

Redirección temporal (Código de respuesta: 302 encontrado)

  • Por el nombre mismo, puedes anticipar lo que hará la medicación temporal. Bueno, este método sirve para cambiar temporalmente la ubicación de una página de un lugar a otro.
  • El código de respuesta: 302 Found se emplea para mostrar el reenvío temporal de una página durante estas redirecciones.
  • Se utiliza principalmente durante el mantenimiento del sitio web; La redirección temporal informa al tráfico o a los usuarios sobre la indisponibilidad temporal del sitio web.
  • También se puede utilizar para redirigir una página incompleta a otro punto o página de inicio.
  • Escenario de ejemplo: el visitante navega a la página del sitio web, pero debido al mantenimiento, se le redirige a una notificación que indica que el sitio web se encuentra actualmente en mantenimiento.
Temporary Redirection
Redirección temporal (Código de respuesta: 302 encontrado)

Redirección Permanente (Código de respuesta: 301 Encontrado)

  • El redireccionamiento permanente de Nginx se utiliza para reubicar permanentemente el dominio de una página.
  • Se emplea una redirección 301 para designar el movimiento permanente de una página en este contexto.
  • Esta redirección se utiliza principalmente cuando un usuario desea cambiar un nombre de dominio y ya no quiere que el tráfico del sitio web acceda a la ubicación anterior.
Permanent Redirection
Redirección Permanente (Código de respuesta: 301 Encontrado)

Cómo redirigir URL usando Nginx (temporal y permanente)

Antes de comenzar, primero debe asegurarse de que NGINX esté instalado en su VPS o Servidor Privado Virtual. Después de eso, acceda a su VPS a través de SSH. En Wpoven puede acceder fácilmente a su sitio a través de la consola de línea de comandos SSH.


Leer: ¿Puedo acceder a mi sitio WPOven a través de SSH?


Configuración de NGINX

  • Ubicación del archivo de configuración de NGINX: la configuración de NGINX generalmente se almacena en un archivo .conf, que es un archivo de texto sin formato que contiene directivas y configuraciones para el servidor.
  • Ubicación predeterminada: la ubicación predeterminada para los archivos de configuración de NGINX suele estar dentro del directorio raíz de documentos de su(s) sitio(s). En este caso, menciona la ruta: /etc/nginx/sites-available/directory_name.conf .
  • Directorio raíz de documentos: este directorio es donde se almacenan los archivos de su sitio web. La raíz del documento puede variar; para un servidor de sitio único, podría estar en el directorio /html . Si su servidor aloja varios sitios, la raíz del documento podría estar dentro de un directorio de dominio específico como /domain.com .
  • Nomenclatura del archivo de configuración: el nombre de su archivo .conf corresponde a su sitio. Por ejemplo, si su sitio está en el directorio /html , el archivo .conf podría denominarse html.conf . Si está en un directorio como /domain.com , entonces el archivo .conf podría llamarse domain.com.conf .
  • Archivo de configuración predeterminado: dentro del /etc/nginx/sites-available/directory , generalmente hay un archivo predeterminado que puede usar como plantilla. Este archivo puede contener configuraciones básicas que puede copiar o modificar según sus necesidades.
  • Creación de un nuevo archivo de configuración: como alternativa, tiene la opción de crear un nuevo archivo .conf. Por ejemplo, puede crear un archivo llamado html.conf o domain.com.conf según la estructura de su sitio y las convenciones de nomenclatura.

Quizás le sorprenda saber que, en Nginx, hay una herramienta incorporada disponible llamada directiva "reescritura". Es una herramienta muy útil que facilita la redirección. La mejor parte es que no hay nada especial que deba hacer al respecto, está presente automáticamente cada vez que instala un Nginx nuevo.

Esta directiva de "reescritura" no está destinada sólo a realizar redirecciones básicas, sino que es bastante versátil. es decir, podrás crear dos tipos de redirecciones, permanentes y temporales.

Todo lo que tienes que hacer es pasar sólo dos argumentos, la URL antigua y la URL nueva. A continuación se muestran algunos ejemplos para su referencia. Simplemente ingrese las siguientes líneas en la configuración de su servidor.

Primero, abra el archivo de configuración ingresando el siguiente comando en la terminal.

$ sudo vi /etc/nginx/nginx.conf

después de eso, utilice los siguientes comandos que se indican a continuación según sus necesidades.

1. Redirección Nginx de página a página

Redirección temporal de página a página de Nginx

server {
# Temporary redirect to an individual page
rewrite ^/oldpage$ http://www.example.com/newpage redirect;
}

Redirección permanente de página a página Nginx

server {
# Permanent redirect to an individual page
rewrite ^/oldpage$ http://www.example.com/newpage permanent;
}

A partir de los comandos anteriores, habrás notado que si deseas crear una redirección permanente, todo lo que necesitas hacer es reemplazar "redireccionar" por "permanente" al final de la directiva.

2. Redirección de Nginx de WWW a no www

Redirección permanente de www a no www:

server {
# Permanent redirect to non-www
server_name www.example.com;
rewrite ^/(.*)$ http://example.com/$1 permanent;
}


Nota : en caso de que desee redirigir desde un sitio que no sea www a www, solo necesita reemplazar las URL del sitio web mencionadas en el comando anterior. es decir, reemplace www.example.com con example.com y viceversa.


3. ¿Cómo redirigir la URL de HTTP a HTTPS en Nginx?

Antes de realizar esta redirección, no olvides instalar el certificado SSL. Redirigir a HTTPS tiene sus beneficios. Ayuda a proteger su sitio web de todos los ataques MIMT, robo de datos, etc. E incluso sus puertos son diferentes, por ejemplo, HTTP usa el puerto 80 mientras que HTTPS usa el 443.

Entonces, para proteger toda la información confidencial que se comparte entre usted y su visitante, necesita los siguientes comandos:

server {
listen 80;
server_name www.domain.tld;
return 301 https://www.domain.tld$request_uri;
}

4. Nginx redirige la URL a otra URL

Si desea redirigir permanentemente, es decir, redirigir nginx a otra URL 301, utilice el siguiente comando:

A un nuevo dominio desde un dominio anterior,

server {
listen 80;
listen 443 ssl;
server_name olddomain.com www.olddomain.com;
return 301 $scheme://www.newdomain.com$request_uri;
}

O

server {
# Permanent redirect to new URL
listen 443 ssl;
# Add this line to listen on the HTTPS port and enable SSL server_name olddomain.com;
ssl_certificate /path/to/your/ssl_certificate.crt; # Update with the actual path to your SSL certificate
ssl_certificate_key /path/to/your/ssl_certificate_key.key; # Update with the actual path to your SSL certificate key
# Additional SSL settings can be configured here
rewrite ^/(.*)$ https://newdomain.com/$1 permanent;
# Update to use 'https' protocol
}

  • Hemos configurado una redirección para nuestro sitio web utilizando una herramienta llamada directiva "reescritura" en Nginx.
  • ^/(.*)$ es una expresión regular que usará todo lo que esté después de la última barra ( / ) en la URL.
  • Por ejemplo, si alguien intenta acceder http://olddomain.com/index.html , utilizará la parte index.html .
  • Entonces, si iba a http://olddomain.com/index.html , lo redirigirá sin problemas a http://newdomain.com/index.html .
  • La idea es redirigir sin problemas a los usuarios al mismo contenido en el nuevo dominio.
  • Para asegurarnos de que esta redirección sea permanente, hemos agregado una palabra clave especial, "Permanente" después de la directiva rewrite .
  • Esto indica tanto a los navegadores como a los motores de búsqueda que se trata de un cambio permanente, utilizando lo que se llama un código de estado HTTP 301.

5. Nginx redirecciona a otro dominio sin cambiar la URL

Suponga que desea redirigir el dominio antiguodominio.com a nuevodominio.com sin cambiar la URL. Significa que cuando ingresa olddomain.com, debería redirigir a newdomain.com, pero la URL aún debería mostrar olddomain.com.

Así es como puedes acercarte,

server {
listen 80;
server_name olddomain.com;

location / {
proxy_pass http://newdomain.com;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect off;
}
}

6. Redireccionamiento Nginx de sitio específico

server {
listen 80;
server_name example.com;
return 301 http://newexample.com$request_uri;
}


Verifique la sintaxis de Nginx

Para verificar que toda la sintaxis de nginx sea correcta, use el siguiente comando:

nginx -t

Si el resultado está vacío, significa que la sintaxis es correcta y debe reiniciar el servidor Nginx para que estas modificaciones sean efectivas.


Reiniciar el servidor Nginx

No olvide reiniciar su servidor Nginx para que estas reglas sean efectivas usando el comando:

sudo systemctl restart Nginx


Resumen

Como ya se mencionó anteriormente, Nginx resultó ser el servidor web más potente y fácil de usar que le permite realizar redirecciones Nginx permanentes y temporales fácilmente.

Después de leer este blog, ahora sabes cómo crear URL de redireccionamiento usando NGINX. Ya sea para nginx redirigir de HTTP a HTTPS, de un dominio a otro dominio, etc.

Además, ha aprendido cómo las redirecciones afectan su clasificación SEO, así que asegúrese siempre de utilizar el tipo de redirección correcto.

Con esta útil función, puede cambiar fácilmente la estructura de su sitio web según las tendencias y requisitos y evitar el miedo al tráfico y la pérdida de clasificación SERP.

WPOven ofrece opciones de alojamiento administradas por WordPress para su próximo proyecto NGINX. Contáctenos para discutir las mejores opciones para usted.

Si tiene alguna consulta o sugerencia, háganoslo saber en la sección de comentarios a continuación:


Preguntas frecuentes

¿Cómo redirigir una URL en nginx?

En Nginx, hay una herramienta incorporada disponible llamada directiva "reescritura". Es una herramienta muy útil que facilita la redirección. La mejor parte es que no hay nada especial que deba hacer al respecto, está presente automáticamente cada vez que instala un Nginx nuevo.

¿Cuál es el código de redirección para Nginx?

El nginx es bastante versátil y te ofrece dos tipos de redirecciones, las permanentes cuyo código de respuesta es 301 y el código de respuesta de reducción temporal es 302.

¿Para qué se utiliza NGINX?

Nginx es un servidor web y un servidor proxy inverso versátil y de alto rendimiento. Se utiliza comúnmente para los siguientes propósitos: servidor web , servidor proxy inverso , equilibrador de carga , terminación SSL/TLS , almacenamiento en caché , red de entrega de contenido (CDN) , puerta de enlace API , soporte WebSocket , seguridad y arquitectura de alta disponibilidad .