{"id":3873,"date":"2026-10-02T11:43:09","date_gmt":"2026-10-02T09:43:09","guid":{"rendered":"https:\/\/mantenimientoweb.pro\/blog\/como-crear-redirecciones-301-efectivas-mediante-el-archivo-htaccess-en-apache-2\/"},"modified":"2026-10-02T11:43:11","modified_gmt":"2026-10-02T09:43:11","slug":"como-crear-redirecciones-301-efectivas-mediante-el-archivo-htaccess-en-apache-2","status":"publish","type":"post","link":"https:\/\/mantenimientoweb.pro\/blog\/como-crear-redirecciones-301-efectivas-mediante-el-archivo-htaccess-en-apache-2\/","title":{"rendered":"\u00bfC\u00f3mo crear redirecciones 301 efectivas mediante el archivo .htaccess en Apache?"},"content":{"rendered":"<p><main><\/p>\n<article>\n  \u00bfC\u00f3mo crear redirecciones 301 efectivas mediante el archivo .htaccess en Apache? \ud83d\udd01<\/p>\n<p>Una redirecci\u00f3n 301 parece poca cosa: una l\u00ednea en un archivo discreto, casi escondido, con un punto delante del nombre como quien no quiere molestar. Y, sin embargo, esa l\u00ednea puede salvar a\u00f1os de posicionamiento SEO, evitar errores 404, ordenar una migraci\u00f3n web y conducir a los usuarios hacia la p\u00e1gina correcta con la precisi\u00f3n de un faro en una noche de niebla.<\/p>\n<p>Tambi\u00e9n puede romperlo todo. Porque el archivo <code>.htaccess<\/code>, cuando se toca sin m\u00e9todo, no perdona demasiado. Apache es cordial, s\u00ed, pero no es adivino. Una barra mal puesta, una regla antes de tiempo, una expresi\u00f3n regular demasiado ambiciosa, y el sitio entra en un bucle infinito con la solemnidad absurda de una puerta giratoria en medio del desierto. Muy tecnol\u00f3gico todo, claro.<\/p>\n<p>Esta gu\u00eda explica, con profundidad pr\u00e1ctica, c\u00f3mo crear redirecciones 301 efectivas en Apache usando <code>.htaccess<\/code>: cu\u00e1ndo usarlas, c\u00f3mo escribirlas, qu\u00e9 diferencias hay entre <code>Redirect<\/code> y <code>RewriteRule<\/code>, c\u00f3mo aplicarlas en WordPress, c\u00f3mo evitar errores comunes y c\u00f3mo comprobar que Google, los navegadores y tus usuarios est\u00e1n recibiendo exactamente lo que deben recibir.<\/p>\n<p>    <strong>Contenido de la gu\u00eda \ud83e\udded<\/strong><\/p>\n<ol>\n<li><a href=\"#que-es-redireccion-301\">Qu\u00e9 es una redirecci\u00f3n 301 y por qu\u00e9 importa<\/a><\/li>\n<li><a href=\"#antes-de-tocar-htaccess\">Antes de editar el archivo .htaccess<\/a><\/li>\n<li><a href=\"#mod-alias-vs-mod-rewrite\">Redirect vs RewriteRule: dos caminos distintos<\/a><\/li>\n<li><a href=\"#redirecciones-basicas\">Ejemplos b\u00e1sicos de redirecciones 301<\/a><\/li>\n<li><a href=\"#redirecciones-avanzadas\">Reglas avanzadas: HTTPS, www, dominios, par\u00e1metros y patrones<\/a><\/li>\n<li><a href=\"#wordpress\">Redirecciones 301 en WordPress<\/a><\/li>\n<li><a href=\"#seo\">Impacto SEO y buenas pr\u00e1cticas<\/a><\/li>\n<li><a href=\"#errores-comunes\">Errores comunes y c\u00f3mo evitarlos<\/a><\/li>\n<li><a href=\"#probar-redirecciones\">C\u00f3mo probar redirecciones 301<\/a><\/li>\n<li><a href=\"#checklist\">Checklist final para publicar sin sobresaltos<\/a><\/li>\n<\/ol>\n<h2 id=\"que-es-redireccion-301\">Qu\u00e9 es una redirecci\u00f3n 301 y por qu\u00e9 importa para SEO \ud83d\udea6<\/h2>\n<p>Una redirecci\u00f3n 301 es una respuesta HTTP que indica que un recurso se ha movido de forma permanente. En t\u00e9rminos sencillos: la URL antigua ya no vive ah\u00ed; ahora vive en otro lugar. El navegador recibe esa instrucci\u00f3n y lleva al usuario a la nueva direcci\u00f3n. Los motores de b\u00fasqueda, por su parte, interpretan que deben actualizar sus \u00edndices y transferir la mayor parte de las se\u00f1ales de posicionamiento hacia la URL nueva.<\/p>\n<p>En HTTP, el estado <code>301 Moved Permanently<\/code> pertenece a la familia de c\u00f3digos 3xx, dedicados a redirecciones. No es lo mismo que un <code>302 Found<\/code>, que suele interpretarse como temporal. Tampoco es id\u00e9ntico a un <code>308 Permanent Redirect<\/code>, m\u00e1s estricto con el m\u00e9todo HTTP, aunque menos usado hist\u00f3ricamente en configuraciones cl\u00e1sicas. La redirecci\u00f3n 301 es, por as\u00ed decirlo, el acta notarial de que una direcci\u00f3n antigua ha dejado paso a otra.<\/p>\n<p>El contraste es hermoso, si se mira con cierta paciencia: una URL puede parecer ligera como una pluma \u2014un texto azul en Google, un enlace en un men\u00fa\u2014, pero arrastra autoridad, enlaces externos, historial, tr\u00e1fico, reputaci\u00f3n y hasta memoria de marca. Cambiarla sin redirigirla es como mudarse de casa y no avisar a nadie, salvo quiz\u00e1 al gato, que ya sospechaba algo.<\/p>\n<h3>Cu\u00e1ndo conviene usar una redirecci\u00f3n 301<\/h3>\n<ul>\n<li>Cuando cambias la estructura de URLs de un sitio web.<\/li>\n<li>Cuando migras de HTTP a HTTPS.<\/li>\n<li>Cuando cambias de dominio.<\/li>\n<li>Cuando fusionas dos p\u00e1ginas similares en una versi\u00f3n m\u00e1s completa.<\/li>\n<li>Cuando eliminas contenido antiguo pero existe una alternativa relevante.<\/li>\n<li>Cuando quieres unificar versiones con y sin <code>www<\/code>.<\/li>\n<li>Cuando corriges URLs con errores tipogr\u00e1ficos que han recibido enlaces.<\/li>\n<li>Cuando eliminas <code>index.php<\/code>, <code>index.html<\/code> o rutas duplicadas.<\/li>\n<\/ul>\n<h3>Cu\u00e1ndo no conviene usarla<\/h3>\n<p>No todas las p\u00e1ginas muertas merecen resurrecci\u00f3n. Si una URL no tiene tr\u00e1fico, enlaces, relevancia ni equivalente real, quiz\u00e1 sea m\u00e1s honesto devolver un <code>404<\/code> o un <code>410 Gone<\/code>. Redirigir todo hacia la p\u00e1gina de inicio suele ser una mala pr\u00e1ctica: confunde a los usuarios, diluye la se\u00f1al tem\u00e1tica y puede interpretarse como un \u201csoft 404\u201d. Es una soluci\u00f3n c\u00f3moda, s\u00ed. Tambi\u00e9n lo es barrer el polvo debajo de la alfombra.<\/p>\n<p>    <strong>Idea clave:<\/strong> una buena redirecci\u00f3n 301 no solo lleva de una URL antigua a una nueva. Lleva de una intenci\u00f3n antigua a una intenci\u00f3n equivalente. Si alguien buscaba \u201cservicios de mantenimiento WordPress\u201d, no deber\u00eda terminar en una p\u00e1gina gen\u00e9rica de contacto como quien cae por una trampilla.<\/p>\n<h2 id=\"antes-de-tocar-htaccess\">Antes de tocar el archivo .htaccess \ud83d\udee0\ufe0f<\/h2>\n<p>El archivo <code>.htaccess<\/code> es un archivo de configuraci\u00f3n usado por Apache para aplicar directivas a nivel de directorio. Puede controlar redirecciones, reescritura de URLs, protecci\u00f3n de directorios, reglas de cach\u00e9, compresi\u00f3n, cabeceras HTTP y otras funciones. En muchos alojamientos compartidos es el mecanismo m\u00e1s accesible para el propietario de un sitio, porque no requiere editar la configuraci\u00f3n principal del servidor.<\/p>\n<p>Pero hay una peque\u00f1a paradoja: lo que hace c\u00f3modo al <code>.htaccess<\/code> tambi\u00e9n puede hacerlo delicado. Apache lee estos archivos durante el procesamiento de las solicitudes, siempre que la configuraci\u00f3n permita <code>AllowOverride<\/code>. Esto facilita cambios r\u00e1pidos, aunque en sitios con mucho tr\u00e1fico puede ser menos eficiente que colocar reglas directamente en la configuraci\u00f3n del virtual host. En hosting compartido, no hay mucho misterio: se usa lo disponible. En servidores propios, conviene considerar el archivo de configuraci\u00f3n de Apache como opci\u00f3n m\u00e1s limpia y performante.<\/p>\n<h3>Requisitos b\u00e1sicos<\/h3>\n<ul>\n<li>El servidor debe ser Apache o compatible con reglas <code>.htaccess<\/code>. Nginx no usa <code>.htaccess<\/code>; requiere reglas en el bloque de servidor.<\/li>\n<li>Debe estar habilitado <code>mod_rewrite<\/code> si vas a usar <code>RewriteEngine<\/code>, <code>RewriteCond<\/code> y <code>RewriteRule<\/code>.<\/li>\n<li>La configuraci\u00f3n de Apache debe permitir directivas mediante <code>AllowOverride<\/code>.<\/li>\n<li>Debes tener acceso por FTP, SFTP, SSH, administrador de archivos del hosting o panel de control.<\/li>\n<li>Conviene tener una copia de seguridad antes de modificar nada. No por dramatismo; por supervivencia.<\/li>\n<\/ul>\n<h3>D\u00f3nde suele estar el archivo .htaccess<\/h3>\n<p>Normalmente se encuentra en la ra\u00edz p\u00fablica del sitio, por ejemplo:<\/p>\n<ul>\n<li><code>\/public_html\/.htaccess<\/code><\/li>\n<li><code>\/www\/.htaccess<\/code><\/li>\n<li><code>\/htdocs\/.htaccess<\/code><\/li>\n<li><code>\/var\/www\/html\/.htaccess<\/code><\/li>\n<\/ul>\n<p>En WordPress, suele estar en el mismo directorio donde se encuentran <code>wp-config.php<\/code>, <code>wp-content<\/code>, <code>wp-admin<\/code> y <code>wp-includes<\/code>.<\/p>\n<p>    <strong>Precauci\u00f3n:<\/strong> antes de editar, descarga una copia del archivo original. Si al guardar aparece un error 500, restaura la copia inmediatamente. Un <code>.htaccess<\/code> mal escrito puede tirar abajo el sitio con la elegancia de un castillo de naipes bajo un ventilador.<\/p>\n<h2 id=\"mod-alias-vs-mod-rewrite\">Redirect vs RewriteRule: dos formas de redirigir en Apache \u2696\ufe0f<\/h2>\n<p>En Apache hay dos herramientas comunes para crear redirecciones 301 desde <code>.htaccess<\/code>: las directivas de <code>mod_alias<\/code>, como <code>Redirect<\/code> y <code>RedirectMatch<\/code>, y las reglas de <code>mod_rewrite<\/code>, como <code>RewriteRule<\/code> y <code>RewriteCond<\/code>.<\/p>\n<p>La primera es directa, casi austera. La segunda es poderosa, flexible y, como tantas cosas poderosas, capaz de causar problemas si se usa con entusiasmo de aprendiz de alquimista.<\/p>\n<table>\n<thead>\n<tr>\n<th>Herramienta<\/th>\n<th>Cu\u00e1ndo usarla<\/th>\n<th>Ventajas<\/th>\n<th>Riesgos<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>Redirect 301<\/code><\/td>\n<td>Redirecciones simples de una URL a otra.<\/td>\n<td>F\u00e1cil de leer, r\u00e1pida de implementar, menos propensa a errores.<\/td>\n<td>No sirve bien para l\u00f3gica condicional compleja.<\/td>\n<\/tr>\n<tr>\n<td><code>RedirectMatch<\/code><\/td>\n<td>Redirecciones con patrones mediante expresiones regulares.<\/td>\n<td>\u00datil para grupos de URLs con estructura similar.<\/td>\n<td>Una expresi\u00f3n regular mal planteada puede redirigir m\u00e1s de la cuenta.<\/td>\n<\/tr>\n<tr>\n<td><code>RewriteRule<\/code><\/td>\n<td>Reglas condicionales: HTTPS, dominio, par\u00e1metros, patrones, exclusiones.<\/td>\n<td>Muy flexible y potente.<\/td>\n<td>Mayor complejidad, m\u00e1s posibilidad de bucles y conflictos.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Regla de oro<\/h3>\n<p>Usa la herramienta m\u00e1s simple que resuelva el caso. Si una redirecci\u00f3n cabe en <code>Redirect 301<\/code>, no invoques <code>mod_rewrite<\/code> como quien llama a una excavadora para plantar albahaca.<\/p>\n<h2 id=\"redirecciones-basicas\">Redirecciones 301 b\u00e1sicas con .htaccess \ud83d\udccc<\/h2>\n<p>Empecemos con lo esencial: mover una URL concreta hacia otra URL concreta. Es el caso m\u00e1s com\u00fan y tambi\u00e9n el m\u00e1s saludable para aprender.<\/p>\n<h3>Redirigir una p\u00e1gina antigua a una nueva con Redirect 301<\/h3>\n<pre><code>Redirect 301 \/pagina-antigua\/ https:\/\/www.ejemplo.com\/pagina-nueva\/<\/code><\/pre>\n<p>En esta sintaxis, la primera ruta debe ser relativa al dominio y comenzar con <code>\/<\/code>. La segunda debe ser la URL destino completa.<\/p>\n<p>Ejemplo realista:<\/p>\n<pre><code>Redirect 301 \/servicios-seo.html https:\/\/www.ejemplo.com\/servicios\/posicionamiento-seo\/<\/code><\/pre>\n<p>Cuando alguien visite <code>https:\/\/www.ejemplo.com\/servicios-seo.html<\/code>, Apache responder\u00e1 con un 301 y enviar\u00e1 al usuario a la nueva ubicaci\u00f3n.<\/p>\n<h3>Redirigir sin cambiar el dominio<\/h3>\n<p>Aunque con <code>Redirect 301<\/code> suele escribirse la URL absoluta de destino, tambi\u00e9n puede usarse una ruta absoluta del mismo sitio en ciertos contextos:<\/p>\n<pre><code>Redirect 301 \/blog\/viejo-articulo\/ \/blog\/nuevo-articulo\/<\/code><\/pre>\n<p>Para evitar ambig\u00fcedades, especialmente en migraciones, muchos profesionales prefieren usar la URL completa:<\/p>\n<pre><code>Redirect 301 \/blog\/viejo-articulo\/ https:\/\/www.ejemplo.com\/blog\/nuevo-articulo\/<\/code><\/pre>\n<h3>Redirigir varias p\u00e1ginas una por una<\/h3>\n<pre><code>Redirect 301 \/producto-antiguo-a\/ https:\/\/www.ejemplo.com\/producto-nuevo-a\/\nRedirect 301 \/producto-antiguo-b\/ https:\/\/www.ejemplo.com\/producto-nuevo-b\/\nRedirect 301 \/producto-antiguo-c\/ https:\/\/www.ejemplo.com\/categoria\/productos\/<\/code><\/pre>\n<p>Esta t\u00e9cnica es ideal cuando tienes una lista controlada de URLs antiguas. S\u00ed, puede parecer artesanal. Pero en SEO t\u00e9cnico lo artesanal a veces gana: una correspondencia manual y precisa suele ser mejor que una regla autom\u00e1tica que manda a medio sitio al mismo vertedero digital.<\/p>\n<h3>Redirigir con RedirectMatch<\/h3>\n<p><code>RedirectMatch<\/code> permite utilizar expresiones regulares. Por ejemplo, redirigir todas las URLs que terminan en <code>.html<\/code> hacia una versi\u00f3n sin esa extensi\u00f3n:<\/p>\n<pre><code>RedirectMatch 301 ^\/(.*)\\.html$ https:\/\/www.ejemplo.com\/$1\/<\/code><\/pre>\n<p>Ejemplo:<\/p>\n<ul>\n<li><code>\/contacto.html<\/code> \u2192 <code>https:\/\/www.ejemplo.com\/contacto\/<\/code><\/li>\n<li><code>\/servicios\/diseno-web.html<\/code> \u2192 <code>https:\/\/www.ejemplo.com\/servicios\/diseno-web\/<\/code><\/li>\n<\/ul>\n<p>    <strong>Cuidado con las expresiones regulares:<\/strong> antes de usar una regla masiva, prueba varias URLs. Una expresi\u00f3n demasiado amplia puede afectar rutas que no quer\u00edas tocar. Las regex son como cuchillos bien afilados: maravillosas en manos serenas, memorables en manos distra\u00eddas.<\/p>\n<h2 id=\"redirecciones-avanzadas\">Redirecciones avanzadas con RewriteRule y RewriteCond \ud83e\udde9<\/h2>\n<p>Cuando necesitas condiciones, exclusiones, patrones complejos o l\u00f3gica basada en el dominio, el protocolo o la cadena de consulta, entra en escena <code>mod_rewrite<\/code>.<\/p>\n<p>La estructura b\u00e1sica suele ser:<\/p>\n<pre><code>RewriteEngine On\n\nRewriteCond condici\u00f3n\nRewriteRule patr\u00f3n destino [R=301,L]<\/code><\/pre>\n<p>En <code>.htaccess<\/code>, el patr\u00f3n de <code>RewriteRule<\/code> normalmente se eval\u00faa sin la barra inicial. Es decir, para redirigir <code>\/pagina-antigua\/<\/code>, el patr\u00f3n suele ser <code>^pagina-antigua\/?$<\/code>, no <code>^\/pagina-antigua\/?$<\/code>. Este peque\u00f1o detalle ha robado tardes enteras a personas decentes.<\/p>\n<h3>Redirigir una URL espec\u00edfica con RewriteRule<\/h3>\n<pre><code>RewriteEngine On\n\nRewriteRule ^pagina-antigua\/?$ https:\/\/www.ejemplo.com\/pagina-nueva\/ [R=301,L]<\/code><\/pre>\n<p>La bandera <code>R=301<\/code> indica redirecci\u00f3n permanente. La bandera <code>L<\/code> significa \u201clast\u201d, es decir, detener el procesamiento de reglas en ese punto para esa fase. En Apache 2.4 tambi\u00e9n existe <code>END<\/code>, \u00fatil para detener m\u00e1s procesamiento de reescritura en contexto per-directory, aunque no siempre es necesario en reglas sencillas.<\/p>\n<h3>Forzar HTTPS<\/h3>\n<p>Una de las redirecciones 301 m\u00e1s habituales es enviar todo el tr\u00e1fico HTTP hacia HTTPS. Es una medida b\u00e1sica de seguridad, SEO y confianza. Adem\u00e1s, evita contenido duplicado entre versiones inseguras y seguras.<\/p>\n<pre><code>RewriteEngine On\n\nRewriteCond %{HTTPS} !=on\nRewriteRule ^ https:\/\/%{HTTP_HOST}%{REQUEST_URI} [R=301,L]<\/code><\/pre>\n<p>Esta regla conserva el host y la URI solicitada. Si alguien entra en <code>http:\/\/www.ejemplo.com\/blog\/<\/code>, ir\u00e1 a <code>https:\/\/www.ejemplo.com\/blog\/<\/code>.<\/p>\n<p>    <strong>Consejo:<\/strong> si tu sitio est\u00e1 detr\u00e1s de Cloudflare, un balanceador de carga o un proxy inverso, la variable <code>%{HTTPS}<\/code> puede no comportarse como esperas. En esos casos puede hacer falta revisar cabeceras como <code>X-Forwarded-Proto<\/code> o configurar correctamente el proxy. No copies reglas a ciegas: el servidor siempre tiene su biograf\u00eda.<\/p>\n<h3>Forzar www<\/h3>\n<p>Si quieres que todas las URLs usen <code>www<\/code>:<\/p>\n<pre><code>RewriteEngine On\n\nRewriteCond %{HTTP_HOST} !^www\\.ejemplo\\.com$ [NC]\nRewriteRule ^ https:\/\/www.ejemplo.com%{REQUEST_URI} [R=301,L]<\/code><\/pre>\n<p>La bandera <code>NC<\/code> significa \u201cno case\u201d, es decir, no distinguir may\u00fasculas y min\u00fasculas.<\/p>\n<h3>Eliminar www<\/h3>\n<p>Si prefieres la versi\u00f3n sin <code>www<\/code>:<\/p>\n<pre><code>RewriteEngine On\n\nRewriteCond %{HTTP_HOST} ^www\\.ejemplo\\.com$ [NC]\nRewriteRule ^ https:\/\/ejemplo.com%{REQUEST_URI} [R=301,L]<\/code><\/pre>\n<p>No hay una opci\u00f3n universalmente superior entre usar <code>www<\/code> o no usarlo. Lo importante es elegir una versi\u00f3n can\u00f3nica y ser coherente. La web no exige elegancia, pero premia la consistencia.<\/p>\n<h3>Forzar HTTPS y www en una sola regla<\/h3>\n<p>Para unificar todo hacia <code>https:\/\/www.ejemplo.com<\/code>:<\/p>\n<pre><code>RewriteEngine On\n\nRewriteCond %{HTTPS} !=on [OR]\nRewriteCond %{HTTP_HOST} !^www\\.ejemplo\\.com$ [NC]\nRewriteRule ^ https:\/\/www.ejemplo.com%{REQUEST_URI} [R=301,L]<\/code><\/pre>\n<p>Esta regla cubre varios casos:<\/p>\n<ul>\n<li><code>http:\/\/ejemplo.com\/pagina\/<\/code> \u2192 <code>https:\/\/www.ejemplo.com\/pagina\/<\/code><\/li>\n<li><code>http:\/\/www.ejemplo.com\/pagina\/<\/code> \u2192 <code>https:\/\/www.ejemplo.com\/pagina\/<\/code><\/li>\n<li><code>https:\/\/ejemplo.com\/pagina\/<\/code> \u2192 <code>https:\/\/www.ejemplo.com\/pagina\/<\/code><\/li>\n<\/ul>\n<h3>Redirigir un dominio antiguo a uno nuevo<\/h3>\n<p>Cuando migras de dominio, conviene redirigir cada URL a su equivalente, no todo a la home. As\u00ed se conserva mejor la relevancia tem\u00e1tica y la experiencia del usuario.<\/p>\n<pre><code>RewriteEngine On\n\nRewriteCond %{HTTP_HOST} ^(www\\.)?dominio-antiguo\\.com$ [NC]\nRewriteRule ^(.*)$ https:\/\/www.dominio-nuevo.com\/$1 [R=301,L]<\/code><\/pre>\n<p>Ejemplo:<\/p>\n<ul>\n<li><code>http:\/\/dominio-antiguo.com\/servicios\/<\/code> \u2192 <code>https:\/\/www.dominio-nuevo.com\/servicios\/<\/code><\/li>\n<li><code>http:\/\/www.dominio-antiguo.com\/blog\/articulo\/<\/code> \u2192 <code>https:\/\/www.dominio-nuevo.com\/blog\/articulo\/<\/code><\/li>\n<\/ul>\n<h3>Redirigir una carpeta completa<\/h3>\n<p>Si moviste todo el contenido de <code>\/blog-antiguo\/<\/code> a <code>\/blog\/<\/code>:<\/p>\n<pre><code>RewriteEngine On\n\nRewriteRule ^blog-antiguo\/(.*)$ https:\/\/www.ejemplo.com\/blog\/$1 [R=301,L]<\/code><\/pre>\n<p>As\u00ed, <code>\/blog-antiguo\/mi-articulo\/<\/code> ir\u00e1 a <code>\/blog\/mi-articulo\/<\/code>.<\/p>\n<h3>Redirigir una URL con par\u00e1metros<\/h3>\n<p>El manejo de par\u00e1metros merece atenci\u00f3n. En Apache, las reglas de reescritura no incluyen la cadena de consulta en el patr\u00f3n de <code>RewriteRule<\/code>. Para trabajar con par\u00e1metros como <code>?id=123<\/code>, se usa <code>RewriteCond<\/code> sobre <code>%{QUERY_STRING}<\/code>.<\/p>\n<p>Ejemplo: redirigir <code>\/producto.php?id=123<\/code> hacia una URL amigable:<\/p>\n<pre><code>RewriteEngine On\n\nRewriteCond %{QUERY_STRING} ^id=123$\nRewriteRule ^producto\\.php$ https:\/\/www.ejemplo.com\/productos\/zapatos-rojos\/? [R=301,L]<\/code><\/pre>\n<p>El signo <code>?<\/code> al final del destino elimina la cadena de consulta original en versiones cl\u00e1sicas de Apache. En Apache 2.4 tambi\u00e9n se puede usar la bandera <code>QSD<\/code> para descartar la query string:<\/p>\n<pre><code>RewriteEngine On\n\nRewriteCond %{QUERY_STRING} ^id=123$\nRewriteRule ^producto\\.php$ https:\/\/www.ejemplo.com\/productos\/zapatos-rojos\/ [R=301,L,QSD]<\/code><\/pre>\n<h3>Conservar par\u00e1metros en la redirecci\u00f3n<\/h3>\n<p>Por defecto, si el destino no contiene una nueva cadena de consulta, Apache suele conservar la query string original. Si quieres a\u00f1adir par\u00e1metros y conservar los existentes, puedes usar <code>QSA<\/code>:<\/p>\n<pre><code>RewriteEngine On\n\nRewriteRule ^busqueda-antigua\/$ \/buscar\/?fuente=redireccion [R=301,L,QSA]<\/code><\/pre>\n<p><code>QSA<\/code> significa \u201cQuery String Append\u201d: agrega los par\u00e1metros existentes al destino.<\/p>\n<h3>Eliminar index.php o index.html<\/h3>\n<p>Las URLs duplicadas con <code>index.php<\/code> o <code>index.html<\/code> son habituales. Para redirigir <code>\/index.php<\/code> hacia la ra\u00edz:<\/p>\n<pre><code>RewriteEngine On\n\nRewriteRule ^index\\.php$ https:\/\/www.ejemplo.com\/ [R=301,L]<\/code><\/pre>\n<p>Para eliminar <code>index.html<\/code> en cualquier carpeta:<\/p>\n<pre><code>RewriteEngine On\n\nRewriteRule ^(.*\/)?index\\.html$ https:\/\/www.ejemplo.com\/$1 [R=301,L]<\/code><\/pre>\n<h3>Normalizar barra final o trailing slash<\/h3>\n<p>En muchos sitios, especialmente WordPress, las URLs can\u00f3nicas terminan con barra final. En otros, no. Lo fundamental es evitar que ambas versiones respondan con <code>200 OK<\/code>.<\/p>\n<p>Agregar barra final a rutas que no parecen archivos:<\/p>\n<pre><code>RewriteEngine On\n\nRewriteCond %{REQUEST_FILENAME} !-f\nRewriteCond %{REQUEST_URI} !\/$\nRewriteRule ^(.+)$ https:\/\/www.ejemplo.com\/$1\/ [R=301,L]<\/code><\/pre>\n<p>Esta regla excluye archivos reales mediante <code>%{REQUEST_FILENAME} !-f<\/code>, para no convertir <code>\/imagen.jpg<\/code> en <code>\/imagen.jpg\/<\/code>, una peque\u00f1a cat\u00e1strofe con sombrero.<\/p>\n<h2 id=\"wordpress\">Redirecciones 301 en WordPress mediante .htaccess \ud83e\uddf1<\/h2>\n<p>WordPress usa <code>.htaccess<\/code> para gestionar sus enlaces permanentes cuando funciona sobre Apache. El bloque t\u00edpico se parece a esto:<\/p>\n<pre><code># BEGIN WordPress\n&lt;IfModule mod_rewrite.c&gt;\nRewriteEngine On\nRewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]\nRewriteBase \/\nRewriteRule ^index\\.php$ - [L]\nRewriteCond %{REQUEST_FILENAME} !-f\nRewriteCond %{REQUEST_FILENAME} !-d\nRewriteRule . \/index.php [L]\n&lt;\/IfModule&gt;\n# END WordPress<\/code><\/pre>\n<p>La recomendaci\u00f3n pr\u00e1ctica es colocar tus redirecciones personalizadas antes del bloque de WordPress. \u00bfPor qu\u00e9? Porque WordPress act\u00faa como controlador frontal: si dejas ciertas reglas despu\u00e9s, quiz\u00e1 nunca se ejecuten como esperas.<\/p>\n<pre><code># Redirecciones personalizadas\nRewriteEngine On\n\nRewriteRule ^antigua-pagina\/?$ https:\/\/www.ejemplo.com\/nueva-pagina\/ [R=301,L]\n\n# BEGIN WordPress\n&lt;IfModule mod_rewrite.c&gt;\nRewriteEngine On\nRewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]\nRewriteBase \/\nRewriteRule ^index\\.php$ - [L]\nRewriteCond %{REQUEST_FILENAME} !-f\nRewriteCond %{REQUEST_FILENAME} !-d\nRewriteRule . \/index.php [L]\n&lt;\/IfModule&gt;\n# END WordPress<\/code><\/pre>\n<h3>\u00bfPlugin o .htaccess?<\/h3>\n<p>En WordPress, plugins como Redirection, Rank Math SEO, Yoast SEO Premium o herramientas similares permiten gestionar redirecciones desde el panel. Son \u00fatiles, especialmente para equipos editoriales o sitios donde las URLs cambian con frecuencia. Pero no siempre son la mejor opci\u00f3n.<\/p>\n<table>\n<thead>\n<tr>\n<th>Opci\u00f3n<\/th>\n<th>Ventajas<\/th>\n<th>Cu\u00e1ndo conviene<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>.htaccess<\/code><\/td>\n<td>R\u00e1pido a nivel de servidor, no depende de WordPress, \u00fatil para reglas globales.<\/td>\n<td>Migraciones, HTTPS, dominio can\u00f3nico, cambios estructurales grandes.<\/td>\n<\/tr>\n<tr>\n<td>Plugin de redirecciones<\/td>\n<td>Interfaz visual, registro de 404, f\u00e1cil para usuarios no t\u00e9cnicos.<\/td>\n<td>Redirecciones editoriales, cambios frecuentes, equipos de contenido.<\/td>\n<\/tr>\n<tr>\n<td>Configuraci\u00f3n de servidor<\/td>\n<td>M\u00e1s eficiente y robusta que <code>.htaccess<\/code>.<\/td>\n<td>Servidores dedicados, VPS, sitios de alto tr\u00e1fico.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Un matiz importante: si WordPress se carga para decidir una redirecci\u00f3n, ya has consumido PHP, base de datos y parte del stack de la aplicaci\u00f3n. Una redirecci\u00f3n en Apache ocurre antes, como un portero atento que no deja entrar al visitante al edificio equivocado.<\/p>\n<h2 id=\"seo\">Impacto SEO de las redirecciones 301: autoridad, rastreo y paciencia \ud83d\udcc8<\/h2>\n<p>Google ha indicado desde hace a\u00f1os que las redirecciones 301, 302 y otras redirecciones bien implementadas pueden transferir se\u00f1ales de ranking cuando corresponden. En la pr\u00e1ctica SEO, una redirecci\u00f3n 301 sigue siendo el est\u00e1ndar para cambios permanentes porque comunica de forma clara la intenci\u00f3n de mover una URL definitivamente.<\/p>\n<p>Aun as\u00ed, conviene abandonar una fantas\u00eda: una migraci\u00f3n con redirecciones perfectas no siempre mantiene el tr\u00e1fico exactamente igual desde el primer d\u00eda. Los buscadores necesitan rastrear, procesar, consolidar se\u00f1ales y actualizar sus \u00edndices. A veces el tr\u00e1nsito es suave; otras veces se parece a cruzar un r\u00edo sobre piedras mojadas. Se puede hacer bien. No siempre se hace sin mojarse los zapatos.<\/p>\n<h3>Buenas pr\u00e1cticas SEO para redirecciones 301<\/h3>\n<ul>\n<li><strong>Redirige a la p\u00e1gina m\u00e1s equivalente:<\/strong> no env\u00edes todo a la home.<\/li>\n<li><strong>Evita cadenas de redirecciones:<\/strong> si A redirige a B y B a C, actualiza A para que vaya directamente a C.<\/li>\n<li><strong>Evita bucles:<\/strong> una URL no debe redirigirse hacia s\u00ed misma, directa ni indirectamente.<\/li>\n<li><strong>Actualiza enlaces internos:<\/strong> no dependas eternamente de las redirecciones.<\/li>\n<li><strong>Actualiza canonical tags:<\/strong> la URL can\u00f3nica debe apuntar a la versi\u00f3n final.<\/li>\n<li><strong>Actualiza sitemaps XML:<\/strong> incluye solo URLs finales con estado <code>200 OK<\/code>.<\/li>\n<li><strong>Revisa robots.txt:<\/strong> no bloquees URLs que necesitas que Google rastree para descubrir la redirecci\u00f3n.<\/li>\n<li><strong>Mant\u00e9n las redirecciones activas:<\/strong> especialmente si hay backlinks externos. En migraciones importantes, a\u00f1os mejor que semanas.<\/li>\n<li><strong>Controla Search Console:<\/strong> revisa cobertura, indexaci\u00f3n, p\u00e1ginas con redirecci\u00f3n y errores 404.<\/li>\n<\/ul>\n<h3>La cadena de redirecci\u00f3n: el enemigo educado<\/h3>\n<p>Una cadena de redirecciones no siempre grita. A veces susurra. Usuario entra en A, A manda a B, B manda a C, C manda a D. Todo \u201cfunciona\u201d, aparentemente. Pero cada salto a\u00f1ade latencia, consume presupuesto de rastreo y aumenta la probabilidad de fallo. Es la burocracia convertida en arquitectura web.<\/p>\n<p>Mal:<\/p>\n<pre><code>\/url-antigua\/ \u2192 \/url-menos-antigua\/ \u2192 \/url-casi-nueva\/ \u2192 \/url-final\/<\/code><\/pre>\n<p>Bien:<\/p>\n<pre><code>\/url-antigua\/ \u2192 \/url-final\/<\/code><\/pre>\n<h2 id=\"errores-comunes\">Errores comunes al crear redirecciones 301 en .htaccess \ud83d\udea8<\/h2>\n<h3>1. Usar 301 cuando a\u00fan est\u00e1s probando<\/h3>\n<p>Los navegadores pueden cachear redirecciones 301 de forma persistente. Si te equivocas, quiz\u00e1 corrijas el archivo y tu navegador siga recordando la versi\u00f3n antigua, como un elefante con mala leche. Durante pruebas, usa temporalmente <code>302<\/code> y cambia a <code>301<\/code> cuando verifiques que todo funciona.<\/p>\n<pre><code>RewriteRule ^prueba\/?$ https:\/\/www.ejemplo.com\/destino\/ [R=302,L]<\/code><\/pre>\n<p>Despu\u00e9s:<\/p>\n<pre><code>RewriteRule ^prueba\/?$ https:\/\/www.ejemplo.com\/destino\/ [R=301,L]<\/code><\/pre>\n<h3>2. Mezclar reglas sin orden<\/h3>\n<p>El orden importa. Apache procesa reglas de arriba hacia abajo. Las reglas espec\u00edficas deben ir antes que las generales.<\/p>\n<p>Mal:<\/p>\n<pre><code>RewriteRule ^blog\/(.*)$ https:\/\/www.ejemplo.com\/articulos\/$1 [R=301,L]\nRewriteRule ^blog\/oferta-especial\/?$ https:\/\/www.ejemplo.com\/promociones\/oferta\/ [R=301,L]<\/code><\/pre>\n<p>La segunda regla quiz\u00e1 nunca se aplique porque la primera captura todo <code>\/blog\/<\/code>. Mejor:<\/p>\n<pre><code>RewriteRule ^blog\/oferta-especial\/?$ https:\/\/www.ejemplo.com\/promociones\/oferta\/ [R=301,L]\nRewriteRule ^blog\/(.*)$ https:\/\/www.ejemplo.com\/articulos\/$1 [R=301,L]<\/code><\/pre>\n<h3>3. Crear reglas demasiado amplias<\/h3>\n<p>Una regla como esta puede parecer eficiente:<\/p>\n<pre><code>RewriteRule ^(.*)$ https:\/\/www.ejemplo.com\/nueva-pagina\/ [R=301,L]<\/code><\/pre>\n<p>Pero redirige pr\u00e1cticamente todo. Es \u00fatil solo en casos muy concretos, por ejemplo, un dominio antiguo que debe enviar todo a una URL temporalmente informativa. En la mayor\u00eda de los sitios, es una red de pesca lanzada sobre una biblioteca.<\/p>\n<h3>4. Provocar bucles de redirecci\u00f3n<\/h3>\n<p>Un bucle ocurre cuando una regla redirige una URL hacia otra que vuelve a activar la misma regla. Ejemplo peligroso:<\/p>\n<pre><code>RewriteEngine On\n\nRewriteRule ^(.*)$ https:\/\/www.ejemplo.com\/$1 [R=301,L]<\/code><\/pre>\n<p>Si ya est\u00e1s en <code>https:\/\/www.ejemplo.com\/<\/code>, esta regla puede seguir redirigiendo sin necesidad si no hay condiciones que filtren protocolo o host. Mejor usar condiciones:<\/p>\n<pre><code>RewriteEngine On\n\nRewriteCond %{HTTPS} !=on [OR]\nRewriteCond %{HTTP_HOST} !^www\\.ejemplo\\.com$ [NC]\nRewriteRule ^ https:\/\/www.ejemplo.com%{REQUEST_URI} [R=301,L]<\/code><\/pre>\n<h3>5. No escapar puntos en dominios o extensiones<\/h3>\n<p>En expresiones regulares, el punto significa \u201ccualquier car\u00e1cter\u201d. Para representar un punto literal, se escapa con barra invertida.<\/p>\n<p>Mal:<\/p>\n<pre><code>RewriteCond %{HTTP_HOST} ^www.ejemplo.com$ [NC]<\/code><\/pre>\n<p>Bien:<\/p>\n<pre><code>RewriteCond %{HTTP_HOST} ^www\\.ejemplo\\.com$ [NC]<\/code><\/pre>\n<h3>6. Olvidar los par\u00e1metros de URL<\/h3>\n<p>Las query strings pueden conservarse, a\u00f1adirse o descartarse seg\u00fan la regla. En tiendas online, campa\u00f1as PPC y sitios con filtros, esto puede afectar anal\u00edtica, conversiones o contenido indexable. No es un detalle menor; es una rendija por donde se escapa el dinero.<\/p>\n<h3>7. Redirigir archivos est\u00e1ticos sin querer<\/h3>\n<p>Reglas globales mal planteadas pueden afectar im\u00e1genes, CSS, JavaScript o PDFs. Por eso se usan condiciones como:<\/p>\n<pre><code>RewriteCond %{REQUEST_FILENAME} !-f\nRewriteCond %{REQUEST_FILENAME} !-d<\/code><\/pre>\n<p>Estas condiciones excluyen archivos y directorios reales.<\/p>\n<h2 id=\"probar-redirecciones\">C\u00f3mo probar redirecciones 301 correctamente \ud83e\uddea<\/h2>\n<p>Publicar una redirecci\u00f3n sin probarla es un acto de fe. Y la fe, aunque respetable, no sustituye a <code>curl<\/code>.<\/p>\n<h3>Probar con curl<\/h3>\n<p>Desde terminal:<\/p>\n<pre><code>curl -I http:\/\/www.ejemplo.com\/pagina-antigua\/<\/code><\/pre>\n<p>Respuesta esperada:<\/p>\n<pre><code>HTTP\/1.1 301 Moved Permanently\nLocation: https:\/\/www.ejemplo.com\/pagina-nueva\/<\/code><\/pre>\n<p>Para seguir toda la cadena de redirecciones:<\/p>\n<pre><code>curl -IL http:\/\/www.ejemplo.com\/pagina-antigua\/<\/code><\/pre>\n<p>Comprueba que el \u00faltimo estado sea <code>200 OK<\/code>, salvo que el destino leg\u00edtimo sea otro tipo de respuesta.<\/p>\n<h3>Probar en navegador<\/h3>\n<ol>\n<li>Abre una ventana privada o de inc\u00f3gnito.<\/li>\n<li>Visita la URL antigua.<\/li>\n<li>Comprueba la URL final.<\/li>\n<li>Abre las herramientas de desarrollo con <span>F12<\/span>.<\/li>\n<li>En la pesta\u00f1a \u201cNetwork\u201d o \u201cRed\u201d, revisa el c\u00f3digo de estado y el encabezado <code>Location<\/code>.<\/li>\n<\/ol>\n<h3>Herramientas \u00fatiles<\/h3>\n<ul>\n<li>Screaming Frog SEO Spider para rastrear redirecciones a gran escala.<\/li>\n<li>Sitebulb para auditor\u00edas t\u00e9cnicas visuales.<\/li>\n<li>Google Search Console para detectar errores de rastreo e indexaci\u00f3n.<\/li>\n<li>Redirect Path, extensi\u00f3n de navegador \u00fatil para inspecciones r\u00e1pidas.<\/li>\n<li>Logs de Apache para ver qu\u00e9 est\u00e1 ocurriendo realmente en el servidor.<\/li>\n<\/ul>\n<h3>Revisar logs de Apache<\/h3>\n<p>Los logs no mienten, aunque a veces hablan con la caligraf\u00eda de un m\u00e9dico cansado. En servidores Linux suelen estar en rutas como:<\/p>\n<ul>\n<li><code>\/var\/log\/apache2\/access.log<\/code><\/li>\n<li><code>\/var\/log\/apache2\/error.log<\/code><\/li>\n<li><code>\/var\/log\/httpd\/access_log<\/code><\/li>\n<li><code>\/var\/log\/httpd\/error_log<\/code><\/li>\n<\/ul>\n<p>Si aparece un error 500 despu\u00e9s de editar <code>.htaccess<\/code>, revisa el log de errores. Muchas veces indicar\u00e1 una directiva no permitida, un m\u00f3dulo no habilitado o una sintaxis incorrecta.<\/p>\n<h2>Plantillas pr\u00e1cticas de redirecciones 301 listas para adaptar \ud83e\uddf0<\/h2>\n<h3>Migraci\u00f3n completa de HTTP a HTTPS y sin www<\/h3>\n<pre><code>RewriteEngine On\n\nRewriteCond %{HTTPS} !=on [OR]\nRewriteCond %{HTTP_HOST} ^www\\.ejemplo\\.com$ [NC]\nRewriteRule ^ https:\/\/ejemplo.com%{REQUEST_URI} [R=301,L]<\/code><\/pre>\n<h3>Migraci\u00f3n completa de HTTP a HTTPS y con www<\/h3>\n<pre><code>RewriteEngine On\n\nRewriteCond %{HTTPS} !=on [OR]\nRewriteCond %{HTTP_HOST} !^www\\.ejemplo\\.com$ [NC]\nRewriteRule ^ https:\/\/www.ejemplo.com%{REQUEST_URI} [R=301,L]<\/code><\/pre>\n<h3>Redirecci\u00f3n de dominio antiguo a dominio nuevo conservando rutas<\/h3>\n<pre><code>RewriteEngine On\n\nRewriteCond %{HTTP_HOST} ^(www\\.)?dominioantiguo\\.com$ [NC]\nRewriteRule ^(.*)$ https:\/\/www.dominionuevo.com\/$1 [R=301,L]<\/code><\/pre>\n<h3>Redirigir una categor\u00eda antigua a una nueva<\/h3>\n<pre><code>RewriteEngine On\n\nRewriteRule ^categoria-antigua\/(.*)$ https:\/\/www.ejemplo.com\/categoria-nueva\/$1 [R=301,L]<\/code><\/pre>\n<h3>Redirigir URLs con extensi\u00f3n .php a URLs limpias<\/h3>\n<pre><code>RewriteEngine On\n\nRewriteRule ^servicios\\.php$ https:\/\/www.ejemplo.com\/servicios\/ [R=301,L]\nRewriteRule ^contacto\\.php$ https:\/\/www.ejemplo.com\/contacto\/ [R=301,L]<\/code><\/pre>\n<h3>Redirigir una p\u00e1gina eliminada a una alternativa relevante<\/h3>\n<pre><code>Redirect 301 \/guia-antigua-seguridad-wordpress\/ https:\/\/www.ejemplo.com\/blog\/seguridad-wordpress\/<\/code><\/pre>\n<h2 id=\"checklist\">Checklist final antes de publicar \u2705<\/h2>\n<p>Antes de guardar el archivo y brindar con caf\u00e9 fr\u00edo \u2014esa bebida oficial de tantas migraciones\u2014 revisa esta lista:<\/p>\n<ul>\n<li>Has hecho copia de seguridad del archivo <code>.htaccess<\/code>.<\/li>\n<li>Has probado las reglas primero con <code>302<\/code> si no estabas completamente seguro.<\/li>\n<li>Las redirecciones espec\u00edficas est\u00e1n antes que las generales.<\/li>\n<li>No hay cadenas de redirecci\u00f3n innecesarias.<\/li>\n<li>No hay bucles.<\/li>\n<li>Las URLs antiguas llevan a destinos equivalentes y \u00fatiles.<\/li>\n<li>La versi\u00f3n can\u00f3nica del dominio est\u00e1 clara: con o sin <code>www<\/code>.<\/li>\n<li>HTTP redirige correctamente a HTTPS.<\/li>\n<li>El sitemap XML contiene solo URLs finales.<\/li>\n<li>Los enlaces internos han sido actualizados.<\/li>\n<li>Los canonical tags apuntan a URLs finales.<\/li>\n<li>Has probado con <code>curl -I<\/code> o herramientas de rastreo.<\/li>\n<li>Has revisado Google Search Console despu\u00e9s de publicar.<\/li>\n<\/ul>\n<h2>Una redirecci\u00f3n bien hecha es invisible, y ah\u00ed est\u00e1 su m\u00e9rito \ud83c\udf09<\/h2>\n<p>Las mejores redirecciones 301 no se notan. Nadie aplaude cuando una URL antigua conduce sin ruido a su nuevo hogar. Nadie escribe a soporte para decir: \u201cQu\u00e9 maravilla, su encabezado <code>Location<\/code> ha sido impecable\u201d. La gloria de la infraestructura suele ser esa: funcionar sin reclamar escenario.<\/p>\n<p>Pero bajo esa discreci\u00f3n hay estrategia. Una redirecci\u00f3n 301 efectiva protege tr\u00e1fico org\u00e1nico, preserva enlaces externos, mejora la experiencia del usuario, evita duplicidades y mantiene limpia la arquitectura del sitio. Es peque\u00f1a como una bisagra y decisiva como una puerta.<\/p>\n<p>Editar <code>.htaccess<\/code> en Apache exige respeto, no miedo. Con una copia de seguridad, reglas ordenadas, pruebas rigurosas y una comprensi\u00f3n clara de lo que ocurre en cada salto, las redirecciones dejan de ser un parche y se convierten en una forma elegante de continuidad. Porque en la web, como en las ciudades antiguas, las calles cambian de nombre; lo importante es que la gente siga encontrando el camino.<\/p>\n<\/article>\n<p><\/main><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u00bfC\u00f3mo crear redirecciones 301 efectivas mediante el archivo .htaccess en Apache? \ud83d\udd01 Una redirecci\u00f3n 301<\/p>\n","protected":false},"author":1,"featured_media":3872,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_seopress_titles_title":"","_seopress_titles_desc":"","_seopress_robots_index":"","_seopress_robots_follow":"","_seopress_robots_imageindex":"","_seopress_robots_snippet":"","_seopress_robots_primary_cat":"","_seopress_robots_breadcrumbs":"","_seopress_robots_freeze_modified_date":"","_seopress_robots_custom_modified_date":"","_seopress_robots_canonical":"","_seopress_social_fb_title":"","_seopress_social_fb_desc":"","_seopress_social_fb_img":"","_seopress_social_fb_img_attachment_id":0,"_seopress_social_fb_img_width":0,"_seopress_social_fb_img_height":0,"_seopress_social_twitter_title":"","_seopress_social_twitter_desc":"","_seopress_social_twitter_img":"","_seopress_social_twitter_img_attachment_id":0,"_seopress_social_twitter_img_width":0,"_seopress_social_twitter_img_height":0,"_seopress_redirections_value":"","_seopress_redirections_enabled":"","_seopress_redirections_enabled_regex":"","_seopress_redirections_logged_status":"","_seopress_redirections_param":"","_seopress_redirections_type":0,"_seopress_analysis_target_kw":"","_seopress_news_disabled":"","_seopress_video_disabled":"","_seopress_video":[],"_seopress_pro_schemas_manual":[],"_seopress_pro_rich_snippets_disable_all":"","_seopress_pro_rich_snippets_disable":[],"_seopress_pro_schemas":[],"footnotes":""},"categories":[2],"tags":[],"class_list":["post-3873","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-mantenimiento"],"_links":{"self":[{"href":"https:\/\/mantenimientoweb.pro\/blog\/wp-json\/wp\/v2\/posts\/3873","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mantenimientoweb.pro\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mantenimientoweb.pro\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mantenimientoweb.pro\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mantenimientoweb.pro\/blog\/wp-json\/wp\/v2\/comments?post=3873"}],"version-history":[{"count":1,"href":"https:\/\/mantenimientoweb.pro\/blog\/wp-json\/wp\/v2\/posts\/3873\/revisions"}],"predecessor-version":[{"id":3874,"href":"https:\/\/mantenimientoweb.pro\/blog\/wp-json\/wp\/v2\/posts\/3873\/revisions\/3874"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/mantenimientoweb.pro\/blog\/wp-json\/wp\/v2\/media\/3872"}],"wp:attachment":[{"href":"https:\/\/mantenimientoweb.pro\/blog\/wp-json\/wp\/v2\/media?parent=3873"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mantenimientoweb.pro\/blog\/wp-json\/wp\/v2\/categories?post=3873"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mantenimientoweb.pro\/blog\/wp-json\/wp\/v2\/tags?post=3873"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}