Cómo redireccionar NON-WWW y WWW con Nginx

Cuando tiene un sitio web o una aplicación funcionando con Nginx, es conveniente permitir que los visitantes accedan al dominio usando versiones www y no www de su nombre de dominio. Sin embargo, en la era actual de la optimización de motores de búsqueda y los usuarios que desean una experiencia de navegación rápida y fácil, tener dos enlaces URL puede afectar negativamente la experiencia general de su sitio web. Sin embargo, esto no significa que deba abandonar una de las formas en que sus visitantes acceden al sitio. En cambio, una simple redirección puede mejorar la experiencia de los visitantes de su sitio web, aumentar el reconocimiento de backlinks más rápidamente y mejorar su calificación de SEO.

En la siguiente guía, aprenderá cómo redirigir una URL www a no www, p. Ej. (www.ejemplo.com) a (ejemplo.com) y viceversa con una redirección se llama Redirección permanente, o "redireccionamientos 301", esto se puede hacer en cualquier sistema operativo usando Nginx, los ejemplos son solo para los bloques del servidor. No explican cómo configurarlos o instalar Nginx.

Requisitos previos

  • SO recomendado: Cualquier sistema Linux que pueda ejecutar Nginx
  • Cuenta de usuario: Una cuenta de usuario con acceso sudo o root.
  • Paquetes recomendados: rizo

Instale las distribuciones curl DNF Method:

sudo dnf install curl

Instale las distribuciones curl APT Method:

Anuncio
sudo apt install curl

Instale las distribuciones Curl Pacman Method:

Anuncio
sudo pacman -S curl

Instale las distribuciones curl Zypper Method:

sudo zypper install curl

Opción 1: Redirigir NON-WWW a WWW

En el primer ejemplo, agregará el siguiente código sobre su existente (www) bloque de nombre del servidor para redirigir a todos los visitantes que acceden a su URL sin www a una URL con www solamente.

HTTP (80):

server {
    server_name    .example.com;
    listen                 80;
    listen                 [::]:80;
    return 301         https://www.example.com$request_uri;
}

HTTPS (443)

Anuncio
server {
    listen                         443 ssl http2;
    listen                          [::]:443 ssl http2;
    server_name             .example.com;

    # SSL
    ssl_certificate                 /path/to/cert.pem;
    ssl_certificate_key         /path/to/key.pem;
    ssl_trusted_certificate    /path/to/cert.crt;
    return                             301 https://www.example.com$request_uri;
}

Nota, asegúrate ($ request_uri) no se elimina, ya que esto puede causar problemas con todos los enlaces que no son www y que solo redirigen a su página de inicio.

Vea también  Cómo instalar HandBrake en Linux Mint 21 LTS

Un ejemplo de esto es https://example.com/random-topic. Si el ($ request_uri) no se agrega, se desviará a www.example.com en lugar de https://www.example.com/random-topic, lo que frustrará a sus visitantes y dañará su clasificación en el motor de búsqueda, con los rastreadores confundidos.

Anuncio

Opción 2: Redirigir WWW a NON-WWW

En el segundo ejemplo, agregará el siguiente código sobre su existente (no www) bloque de nombre del servidor para redirigir a todos los visitantes que acceden a su URL www a una URL que no sea www solamente.

HTTP (80)

server {
    server_name     www.example.com;
    listen                 80;
    listen                 [::]:80;
    return 301         https://example.com$request_uri;
}

HTTPS (443)

Anuncio
server {
    listen                  443 ssl http2;
    listen                  [::]:443 ssl http2;
    server_name     www.example.com;

    # SSL
    ssl_certificate                /path/to/cert.pem;
    ssl_certificate_key        /path/to/key.pem;
    ssl_trusted_certificate   /path/to/cert.crt;
    return                             301 https://example.com$request_uri;
}

Como se indicó al final de la Opción 1, asegúrese de ($ request_uri) no se elimina. Esta es una parte esencial.

Tenga en cuenta que coloque los certificados y la clave para los redireccionamientos o problemas de HTTPS.

Confirmar cambios

Antes de reiniciar su instancia de Nginx, lo mejor es hacer una ejecución en seco para asegurarse de que no haya errores en lo que acaba de agregar. Para probar, ejecute el siguiente comando:

Anuncio
sudo nginx -t

Si todo está bien, debería obtener el siguiente resultado:

nginx: the configuration file /etc/nginx/my-server.conf syntax is ok
nginx: configuration file /etc/nginx/my-server.conf test is successful

Proceda a reiniciar su servicio Nginx para que los cambios estén activos:

Anuncio
sudo systemctl restart nginx

¡Eso es todo! Ha completado la redirección. Para probar si la redirección está funcionando, ejecute lo siguiente:

prueba de redirección que no es de www a www

curl -I https://example.com

Ejemplo de salida:

HTTP/1.1 301 Moved Permanently
 Server: nginx/1.21.1 (Ubuntu)
 Date: Mon, 14 July 2021 18:20:19 GMT
 Content-Type: text/html
 Content-Length: 193
 Connection: keep-alive
 Location: http://www.example.com/

prueba de redirección de www a no www

curl -I https://www.example.com

Ejemplo de salida:

HTTP/1.1 301 Moved Permanently
 Server: nginx/1.21.1 (Ubuntu)
 Date: Mon, 14 July 2021 18:21:33 GMT
 Content-Type: text/html
 Content-Length: 193
 Connection: keep-alive
 Location: http://example.com/

Comentarios y Conclusión

En la guía, aprendió cómo agregar fácil y rápidamente las direcciones www y no www al bloque del sitio del servidor de Nginx, lo que mejorará la experiencia general de sus visitantes al visitar solo una URL en lugar de dos.

Anuncio

Como se explica al comienzo de la guía, el SEO se está volviendo más crucial. Los motores de búsqueda constantemente marcan sitios web; tener dos URL con posible contenido duplicado es una gran marca roja contra su sitio web. Agregar esta redirección puede aumentar rápidamente su clasificación y sus vínculos de retroceso.

Anuncio


¿No es lo que estabas buscando? Intente buscar tutoriales adicionales.

Deja un comentario