{"id":31084,"date":"2026-04-09T13:36:00","date_gmt":"2026-04-09T11:36:00","guid":{"rendered":"https:\/\/contabo.com\/blog\/guia-de-redireccion-de-nginx-301-302-reglas-de-reescritura\/"},"modified":"2026-06-08T07:54:58","modified_gmt":"2026-06-08T05:54:58","slug":"guia-de-redireccion-de-nginx","status":"publish","type":"post","link":"https:\/\/contabo.com\/blog\/es\/guia-de-redireccion-de-nginx\/","title":{"rendered":"Gu\u00eda de redirecci\u00f3n de Nginx: 301, 302, reglas de reescritura"},"content":{"rendered":"\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"630\" src=\"https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/04\/blog-head_nginx-redirect-guide_ES.webp\" alt=\"Gu\u00eda de redirecci\u00f3n de Nginx: 301, 302, reglas de reescritura\" class=\"wp-image-30293\" srcset=\"https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/04\/blog-head_nginx-redirect-guide_ES.webp 1200w, https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/04\/blog-head_nginx-redirect-guide_ES-600x315.webp 600w, https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/04\/blog-head_nginx-redirect-guide_ES-768x403.webp 768w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Configurar una redirecci\u00f3n de nginx incorrectamente no s\u00f3lo frustra a los usuarios. Afecta a tu posicionamiento en SEO, crea bucles de redirecci\u00f3n que bloquean los navegadores y deja URLs antiguas devolviendo 200 cuando no deber\u00edan. Consigue las directivas correctas la primera vez.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-que-es-una-redireccion-de-nginx\">\u00bfQu\u00e9 es una redirecci\u00f3n de Nginx?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Una redirecci\u00f3n de nginx es una configuraci\u00f3n del lado del servidor que env\u00eda a los visitantes y a los motores de b\u00fasqueda de una URL a otra. Nginx eval\u00faa las solicitudes entrantes contra bloques de servidor y bloques de ubicaci\u00f3n, luego decide si servir contenido, hacer proxy o redirigir a un nuevo destino.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-301-vs-302-cual-usar\">301 vs 302: \u00bfCu\u00e1l usar?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">301 es permanente. \u00dasalo cuando una URL se ha movido de forma permanente y deseas que los motores de b\u00fasqueda transfieran las se\u00f1ales de ranking a la nueva ubicaci\u00f3n. 302 es temporal. Util\u00edzalo para ventanas de mantenimiento, pruebas A\/B o situaciones donde la URL original volver\u00e1. Los navegadores almacenan en cach\u00e9 agresivamente los 301, as\u00ed que no los uses para nada que pudieras revertir.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-requisitos-previos-y-ubicaciones-de-archivos\">Requisitos previos y ubicaciones de archivos<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Necesitas acceso root o sudo para editar archivos de configuraci\u00f3n de nginx. La configuraci\u00f3n principal se encuentra en \/etc\/nginx\/nginx.conf. Las configuraciones espec\u00edficas del sitio van en \/etc\/nginx\/sites-available\/, con enlaces simb\u00f3licos en \/etc\/nginx\/sites-enabled\/ para activarlas. Siempre haz una copia de seguridad antes de editar:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo cp \/etc\/nginx\/nginx.conf \/etc\/nginx\/nginx.conf.bak<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-como-configurar-redirecciones-de-nginx\">C\u00f3mo configurar redirecciones de Nginx<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Nginx ofrece tres directivas principales para redirecciones: return, rewrite y try_files. Cada una tiene un caso de uso espec\u00edfico.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-usando-la-directiva-return\">Usando la directiva return<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">La directiva return es la opci\u00f3n m\u00e1s eficiente. Detiene el procesamiento de inmediato y env\u00eda el c\u00f3digo de estado y la URL al cliente. Sintaxis:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>return &#91;status_code] &#91;URL];<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ejemplo: redirigir todo el tr\u00e1fico de un dominio antiguo a uno nuevo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>server { &nbsp; &nbsp; listen 80; &nbsp; &nbsp; server_name old-domain.com; &nbsp; &nbsp; return 301 https:\/\/new-domain.com$request_uri; }<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">La variable $request_uri preserva la ruta y la cadena de consulta, por lo que \/blog\/post se convierte en https:\/\/new-domain.com\/blog\/post.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-usando-la-directiva-rewrite\">Usando la directiva rewrite<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">La directiva rewrite utiliza regex para coincidir y transformar URLs. Es m\u00e1s flexible que return pero m\u00e1s lenta y m\u00e1s dif\u00edcil de depurar:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>rewrite ^\/old-path(.*)$ \/new-path$1 permanent;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">La bandera permanente la convierte en un 301. Usa redirect para el 302. Si no necesitas coincidencias regex, usa return en su lugar. Las reglas de reescritura se eval\u00faan en secuencia y pueden activar m\u00faltiples reescrituras por solicitud.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-usando-try-files-para-redirecciones-de-respaldo\">Usando try_files para redirecciones de respaldo<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">try_files verifica archivos por orden y recurre a una ubicaci\u00f3n especificada si no existen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>location \/ { &nbsp; &nbsp; try_files $uri $uri\/ \/index.php?$query_string; }<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Esto no es una redirecci\u00f3n tradicional, sino que identifica casos donde las URLs limpias necesitan recurrir a un controlador frontal.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-casos-de-uso-comunes-de-redireccion-en-nginx\">Casos de uso comunes de redirecci\u00f3n en Nginx<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-redirigir-http-a-https\">Redirigir HTTP a HTTPS<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">El patr\u00f3n est\u00e1ndar para forzar HTTPS:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>server { &nbsp; &nbsp; listen 80; &nbsp; &nbsp; server_name example.com www.example.com; &nbsp; &nbsp; return 301 https:\/\/example.com$request_uri; }<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-redirigir-www-a-no-www\">Redirigir www a no-www<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Redirecci\u00f3n can\u00f3nica para eliminar el subdominio www:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>server { &nbsp; &nbsp; listen 443 ssl; &nbsp; &nbsp; server_name www.example.com; &nbsp; &nbsp; return 301 https:\/\/example.com$request_uri; }<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-redirigir-una-url-o-ruta-especifica\">Redirigir una URL o ruta espec\u00edfica<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Redirecci\u00f3n de una sola URL utilizando un bloque de ubicaci\u00f3n:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>location = \/old-page { &nbsp; &nbsp; return 301 \/new-page; }<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">El modificador = hace una coincidencia exacta, que es m\u00e1s r\u00e1pida que la coincidencia por prefijo o regex.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-redirigir-un-dominio-entero\">Redirigir un dominio entero<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Redirecci\u00f3n general para migraciones de dominio:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>server { &nbsp; &nbsp; listen 80; &nbsp; &nbsp; server_name old-site.com; &nbsp; &nbsp; return 301 https:\/\/new-site.com$request_uri; }<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-mejores-practicas-para-redireccion-en-nginx\">Mejores pr\u00e1cticas para redirecci\u00f3n en Nginx<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-evitando-cadenas-y-bucles-de-redireccion\">Evitando cadenas y bucles de redirecci\u00f3n<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Una cadena de redirecci\u00f3n es cuando la URL A redirige a B, que redirige a C. Cada salto agrega latencia y puede confundir a los rastreadores. Mant\u00e9n las cadenas a un m\u00e1ximo de una redirecci\u00f3n. Un bucle de redirecci\u00f3n es cuando A redirige a B y B redirige de vuelta a A, lo que mata la solicitud por completo. Siempre prueba con curl:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl -I http:\/\/example.com<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-probando-tu-configuracion\">Probando tu configuraci\u00f3n<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Antes de recargar nginx, valida la configuraci\u00f3n:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo nginx -t<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Si pasa, recarga sin perder conexiones:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl reload nginx<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Nunca saltes la validaci\u00f3n. Un error de sintaxis en el archivo de configuraci\u00f3n apaga todo el servidor.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-faq-redireccion-en-nginx\">FAQ: Redirecci\u00f3n en Nginx<\/h2>\n\n\n\n<div class=\"schema-faq wp-block-yoast-faq-block\"><div class=\"schema-faq-section\" id=\"faq-question-1777030871469\"><strong class=\"schema-faq-question\">\u00bfCu\u00e1l es la diferencia entre return y rewrite en nginx?<\/strong> <p class=\"schema-faq-answer\">return es m\u00e1s r\u00e1pido porque detiene el procesamiento de inmediato. rewrite pasa por todo el ciclo de procesamiento de nginx y admite transformaciones regex. Usa return para redirecciones simples y rewrite solo cuando necesites manipulaci\u00f3n de URL basada en regex.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1777030882166\"><strong class=\"schema-faq-question\">\u00bfC\u00f3mo redirigir HTTP a HTTPS en nginx?<\/strong> <p class=\"schema-faq-answer\">Agrega un bloque de servidor escuchando en puerto 80 con: return 301 https:\/\/tudominio.com$request_uri; eso env\u00eda todo el tr\u00e1fico HTTP al equivalente HTTPS de forma permanente.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1777030891839\"><strong class=\"schema-faq-question\">\u00bfC\u00f3mo redirigir www a no-www en nginx?<\/strong> <p class=\"schema-faq-answer\">Crea un bloque de servidor para www.tudominio.com y devuelve 301 https:\/\/tudominio.com$request_uri; aseg\u00farate de que tu certificado SSL cubra ambas versiones, www y no-www.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1777030900228\"><strong class=\"schema-faq-question\">\u00bfC\u00f3mo probar redirecciones de nginx sin romper la producci\u00f3n?<\/strong> <p class=\"schema-faq-answer\">Ejecuta sudo nginx -t para validar la sintaxis. Luego usa curl -IL https:\/\/tudominio.com\/path para rastrear toda la cadena de redirecci\u00f3n antes de recargar el servidor en vivo.<\/p> <\/div> <\/div>\n","protected":false},"excerpt":{"rendered":"<p>Configurar una redirecci\u00f3n de nginx incorrectamente no s\u00f3lo frustra a los usuarios. Afecta a tu posicionamiento en SEO, crea bucles de redirecci\u00f3n que bloquean los navegadores y deja URLs antiguas devolviendo 200 cuando no deber\u00edan. Consigue las directivas correctas la primera vez. \u00bfQu\u00e9 es una redirecci\u00f3n de Nginx? Una redirecci\u00f3n de nginx es una configuraci\u00f3n [&hellip;]<\/p>\n","protected":false},"author":44,"featured_media":30293,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":"","_members_access_role":[],"_members_access_error":""},"categories":[1988],"tags":[],"ppma_author":[3402],"class_list":["post-31084","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutoriales"],"uagb_featured_image_src":{"full":["https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/04\/blog-head_nginx-redirect-guide_ES.webp",1200,630,false],"thumbnail":["https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/04\/blog-head_nginx-redirect-guide_ES-150x150.webp",150,150,true],"medium":["https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/04\/blog-head_nginx-redirect-guide_ES-600x315.webp",600,315,true],"medium_large":["https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/04\/blog-head_nginx-redirect-guide_ES-768x403.webp",768,403,true],"large":["https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/04\/blog-head_nginx-redirect-guide_ES.webp",1200,630,false],"1536x1536":["https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/04\/blog-head_nginx-redirect-guide_ES.webp",1200,630,false],"2048x2048":["https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/04\/blog-head_nginx-redirect-guide_ES.webp",1200,630,false]},"uagb_author_info":{"display_name":"Milan Ivanovic","author_link":"https:\/\/contabo.com\/blog\/es\/author\/milan\/"},"uagb_comment_info":0,"uagb_excerpt":"Configurar una redirecci\u00f3n de nginx incorrectamente no s\u00f3lo frustra a los usuarios. Afecta a tu posicionamiento en SEO, crea bucles de redirecci\u00f3n que bloquean los navegadores y deja URLs antiguas devolviendo 200 cuando no deber\u00edan. Consigue las directivas correctas la primera vez. \u00bfQu\u00e9 es una redirecci\u00f3n de Nginx? Una redirecci\u00f3n de nginx es una configuraci\u00f3n&hellip;","authors":[{"term_id":3402,"user_id":0,"is_guest":1,"slug":"contabro","display_name":"ContaBro","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/?s=96&d=mm&r=g","author_category":"","user_url":"","last_name":"","first_name":"","job_title":"","description":""}],"_links":{"self":[{"href":"https:\/\/contabo.com\/blog\/es\/wp-json\/wp\/v2\/posts\/31084","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/contabo.com\/blog\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/contabo.com\/blog\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/contabo.com\/blog\/es\/wp-json\/wp\/v2\/users\/44"}],"replies":[{"embeddable":true,"href":"https:\/\/contabo.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=31084"}],"version-history":[{"count":3,"href":"https:\/\/contabo.com\/blog\/es\/wp-json\/wp\/v2\/posts\/31084\/revisions"}],"predecessor-version":[{"id":31204,"href":"https:\/\/contabo.com\/blog\/es\/wp-json\/wp\/v2\/posts\/31084\/revisions\/31204"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/contabo.com\/blog\/es\/wp-json\/wp\/v2\/media\/30293"}],"wp:attachment":[{"href":"https:\/\/contabo.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=31084"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/contabo.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=31084"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/contabo.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=31084"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/contabo.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=31084"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}