FernandezSanSalvador

Desarrollo web, frameworks, wordpress, linux y mas.

Sistemas y redes » Servidores web » Nginx

Como hacer una redirección 301 en nginx

Como hacer una redirección 301 en nginx
5 (100%) 1 voto

Introducción

Configurar una redireccion 301 en nginx es una tarea sencilla que nos puede evitar penalizaciones en seo y perder posicionamiento en los buscadores. Esto es bastante importante si queremos cambiar de dominio, o hemos cambiado la estructura de enlaces de nuestra web.

Es muy sencillo de hacer, tan solo debemos editar nuestro fichero de configuración de nginx del sitio web (en este caso dominio.com):

nano /etc/nginx/sites-enabled/dominio_com

Redireccionar de http://dominio.com y http://www.dominio.com a https://www.dominio.com

Por ejemplo, para redireccionar siempre a la version https de www.dominio.com:

server {
    listen 443 ssl;
    server_name www.dominio.com;
    # Aquí tenemos la configuración de nginx de nuestro sitio
}

server {
    listen 443 ssl;
    server_name dominio.com;
    return 301 https://www.dominio.com$request_uri;
}


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

En el primer bloque se define la configuración de nuestro sitio web con su root, access_log, error_log y demas cosas.

En el segundo bloque se fuerza a que todos los accesos a la versión segura de dominio.com (https://dominio.com), se redirigen a la versión segura de https (https://www.dominio.com)

En el tercer bloque, se obliga a que todos los accesos mediante http (no seguro) se redirigan a https://www.dominio.com

Redireccionar de http://dominio.com y http://www.dominio.com a https://dominio.com

Si queremos hacer el caso contrario, redireccionar siempre a la versión https dominio.com, se hace de manera también muy sencilla:

server {
    listen 443 ssl;
    server_name dominio.com;
    # Aqui tenemos la configuración de nginx de nuestro sitio
}

server {
    listen 443 ssl;
    server_name www.dominio.com;
    return 301 https://dominio.com$request_uri;
}

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

En el primer bloque se define la configuración de nuestro sitio web con su configuración habitual.

En el segundo bloque se fuerza a que todos los accesos a la versión segura de www.dominio.com (https://www.dominio.com), se redirigen a la versión segura de https sin www(https://dominio.com)

En el tercer bloque, se obliga a que todos los accesos mediante http (no seguro) se redirigan a https://dominio.com

Deja un comentario