Cómo hacer redirecciones 301 y 302 en nginx
Anuncio:
En esta ocasión vamos a ver cómo hacer redirecciones 301 y 302 en nginx. Con Apache, lo más común que he podido ver, es hacerlo con el archivo .htaccess. Esto es porque Apache si busca dicho archivo para aplicar la configuración de éste. Pero nginx no hace uso del archivo .htaccess. Así que vamos a ver cómo hacer redirecciones con nginx.
Para hacer redirecciones 301 y 302 en nginx, tenemos que modificar el archivo de configuración de nuestro dominio en el servidor. Para ello, vamos a editar dicho archivo:
sudo nano /etc/nginx/sites-available/midominio.conf
Una vez abierto este archivo. Para hacer una redirección 301, para ello, agregamos lo siguiente dentro de la sección server
server {
...
...
rewrite ^/url-antigua$ /url-nueva permanent;
...
...
}
Fijate que al final de la url antigua he puesto el signo de dolar, esto es para que se haga la redirección con los parámetros que pueda tener la url. Lo que indica que es una redirección 301 es el atributo permanent.
Ahora debemos reiniciar nginx:
sudo service nginx restart
Y listo con esto ya hemos realizado una redirección 301 en nginx.
Ahora, para realizar una redirección 302 (temporal) en nginx, debemos hacer lo mismo, pero indicándole el atributo redirect:
server {
...
...
rewrite ^/url-antigua$ /url-nueva redirect;
...
...
}
Igualmente debemos reiniciar nginx:
sudo service nginx restart
Y con esto ya hemos realizado una redirección temporal 302 en nuestro servidor.
Ahora, puede que quieras hacer la redirección de todo el sitio. Esto lo puedes hacer de la siguiente forma:
server {
listen 80;
server_name dominio-viejo.com;
return 301 http://dominio-nuevo.com$request_uri;
}
Si es una redirección permanente usamos 301 y si es temporal lo haremos con 302. De igual forma, habría que reiniciar nginx para que surta efecto.
Puedes aprender más en nuestra sección de servidores.
Espero que te haya sido de utilidad!