GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo redirigir URL usando Nginx

¿Qué es una redirección?

Una redirección es una función del servidor web que redirigirá el tráfico de una URL a otra. Los redireccionamientos son una característica importante cuando surge la necesidad. Hay varios tipos diferentes de redireccionamientos, pero las formas más comunes son temporales y permanentes. En este artículo, proporcionaremos algunos ejemplos de redireccionamiento a través del archivo vhost, forzando una conexión HTTPS segura, redireccionamiento a www y no www, así como la diferencia entre redireccionamientos temporales y permanentes.

NotaComo se trata de un servidor Nginx, no se aplicará ninguna regla de .htaccess. Si está utilizando el otro servidor web popular, Apache, este artículo le resultará útil.

Métodos comunes para redireccionamientos

Los redireccionamientos temporales (código de respuesta:302 encontrado) son útiles si una URL se sirve temporalmente desde una ubicación diferente. Por ejemplo, son útiles cuando se realiza el mantenimiento y pueden redirigir a los usuarios a una página de mantenimiento.

Sin embargo, los redireccionamientos permanentes (código de respuesta:301 Movido permanentemente) informan al navegador que había una URL antigua que debe olvidar y no intentar acceder más. Estos son útiles cuando el contenido se ha movido de un lugar a otro.

Cómo redirigir

Cuando se trata de Nginx, eso se maneja dentro de un .conf archivo, que normalmente se encuentra en el directorio raíz del documento de su(s) sitio(s), /etc/nginx/sites-disponible/directory_name .conf . El directorio raíz del documento es donde se encuentran los archivos de su sitio y, a veces, puede estar en /html si tiene un sitio en el servidor. O si su servidor tiene varios sitios, puede estar en /domain.com. De cualquier manera, ese será su nombre de archivo .conf. En el /etc/nginx/sites-disponible/ directorio encontrará el predeterminado archivo que puede copiar o usar para agregar sus redireccionamientos. O puede crear un nuevo nombre de archivo html.conf o dominio.com.conf.

NotaSi elige crear un nuevo archivo, asegúrese de actualizar sus enlaces simbólicos en /etc/nginx/sites-enabled. Con el comando:

ln -s /etc/nginx/sites-available/domain.com.conf /etc/nginx/sites-enabled/domain.com.conf

El primer ejemplo que cubriremos es la redirección de una página/directorio específico a la nueva página/directorio.

Redireccionamiento temporal de página a página

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

Redireccionamiento permanente de página a página

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

Redirección permanente de www a no-www

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

Redireccionamiento permanente a www

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

En ocasiones surgirá la necesidad de cambiar el nombre de dominio de un sitio web. En este caso, una redirección desde la URL del sitio antiguo a la URL del sitio nuevo será muy útil para que los usuarios sepan que el dominio se movió a una nueva URL.

El siguiente ejemplo que cubriremos es redirigir una URL antigua a una nueva URL.

Redireccionamiento permanente a nueva URL

server {
# Permanent redirect to new URL
server_name olddomain.com;
rewrite ^/(.*)$ http://newdomain.com/$1 permanent;
}

Hemos agregado la redirección usando la directiva de reescritura que discutimos anteriormente. El ^/(.*)$ La expresión regular usará todo lo que esté después de / en la URL. Por ejemplo, http://antiguo dominio.com/index.html redirigirá a http://nuevo dominio.com/index.html. Para lograr la redirección permanente, agregamos permanente después de la directiva de reescritura, como puede ver en el código de ejemplo.

Cuando se trata de HTTPS y ser completamente seguro, es ideal para obligar a todos a usar https:// en lugar de http://.

Redirigir a HTTPS

server {
# Redirect to HTTPS
listen      80;
server_name domain.com www.domain.com;
return      301 https://example.com$request_uri;
}

Una vez implementadas estas reglas de reescritura, se recomienda probar la configuración antes de ejecutar un reinicio. La sintaxis de Nginx se puede verificar con -t bandera para asegurarse de que no hay un error tipográfico presente en el archivo.

Comprobación de sintaxis de Nginx

nginx -t

Si no se devuelve nada, la sintaxis es correcta y se debe recargar Nginx para que las redirecciones surtan efecto.

Reinicio de Nginx

service nginx reload

Para CentOS 7 que a diferencia de CentOS 6 , utiliza systemd:

systemctl restart nginx

Redirecciones en WordPress administrado/WooCommerce

Si está en nuestros productos administrados de WordPress/WooCommerce, los redireccionamientos pueden ocurrir a través de /home/s#/nginx/redirects.conf expediente. Cada sitio tendrá su propio s# que es el usuario de FTP/SSH por sitio. El complemento llamado 'Redirección' se puede descargar para ayudar con una simple redirección de página a página, de lo contrario, el archivo redirects.conf se puede utilizar para agregar redirecciones más específicas también usando los ejemplos explicados anteriormente.

Debido a la naturaleza de una plataforma administrada, una vez que haya implementado las reglas dentro del archivo redirects.conf, comuníquese con soporte y solicite que se vuelva a cargar Nginx. Si no se siente cómodo realizando los pasos descritos anteriormente, comuníquese con nuestro equipo de soporte a través de chat, ticket o llamada telefónica. ¡Con Managed WordPress/WooCommerce obtienes soporte 24/7 disponible y listo para ayudarte!


Linux
  1. Cómo usar Nginx para redirigir

  2. Cómo instalar WordPress usando Nginx en Ubuntu 18.04

  3. Cómo deshabilitar ETag en NGINX

  4. Cómo habilitar HTTP2 en NGINX

  5. ¿Cómo redirigir http a https usando .htaccess?

Cómo bloquear XML-RPC en WordPress usando Nginx/Apache

¿Cómo habilitar IPv6 en Nginx?

Cómo instalar WordPress usando Nginx en Ubuntu Linux

Cómo redirigir URL de www a sitios que no son www en WordPress

Cómo instalar WordPress en una pila Nginx LEMP usando Ubuntu 14.04

¿Cómo instalar Nginx en CentOS 7?