<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Aliases on KnightLi Blog</title>
        <link>https://www.knightli.com/es/tags/aliases/</link>
        <description>Recent content in Aliases on KnightLi Blog</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>es</language>
        <lastBuildDate>Sun, 17 May 2026 20:00:17 +0800</lastBuildDate><atom:link href="https://www.knightli.com/es/tags/aliases/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>Cómo usar Hugo aliases: redirecciones de URL antiguas y guía para corregir 404</title>
        <link>https://www.knightli.com/es/2026/05/17/hugo-aliases-url-redirect/</link>
        <pubDate>Sun, 17 May 2026 20:00:17 +0800</pubDate>
        
        <guid>https://www.knightli.com/es/2026/05/17/hugo-aliases-url-redirect/</guid>
        <description>&lt;p&gt;Los &lt;code&gt;aliases&lt;/code&gt; de Hugo sirven para crear redirecciones desde URL antiguas de una página.&lt;/p&gt;
&lt;p&gt;Cuando cambias la URL de un artículo, fusionas páginas, migras un blog o quieres corregir una URL incorrecta frecuente, puedes añadir &lt;code&gt;aliases&lt;/code&gt; en el Front Matter del artículo. Hugo genera páginas de redirección para esas direcciones antiguas y lleva a los visitantes a la página actual, evitando errores 404 innecesarios.&lt;/p&gt;
&lt;h2 id=&#34;para-qué-sirven-los-aliases&#34;&gt;Para qué sirven los aliases
&lt;/h2&gt;&lt;p&gt;Hay tres escenarios comunes.&lt;/p&gt;
&lt;p&gt;El primero es optimizar las URL de artículos.&lt;/p&gt;
&lt;p&gt;Por ejemplo, la URL antigua de un artículo podría ser:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/posts/tech/2023-01-01-hello/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Después quizá quieras acortarla a:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/hello/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;En ese caso, añade la URL antigua como alias en la nueva página. Los buscadores, referencias externas y enlaces sociales antiguos seguirán llegando al contenido.&lt;/p&gt;
&lt;p&gt;El segundo escenario es fusionar o migrar páginas.&lt;/p&gt;
&lt;p&gt;Si combinas varios artículos antiguos en uno nuevo, o migras desde Hexo, Typecho, WordPress u otra plataforma a Hugo, la estructura de URL antigua suele ser distinta a la del nuevo sitio. &lt;code&gt;aliases&lt;/code&gt; permite apuntar esas direcciones antiguas una por una a las páginas nuevas y reducir los 404 tras la migración.&lt;/p&gt;
&lt;p&gt;El tercer escenario es corregir errores de escritura.&lt;/p&gt;
&lt;p&gt;Algunas URL pueden haberse escrito mal, o sitios externos pueden haber enlazado a una ruta incorrecta. Si ese enlace incorrecto recibe tráfico, puedes crear un alias específico para guiar a los usuarios a la página correcta.&lt;/p&gt;
&lt;h2 id=&#34;sintaxis-básica&#34;&gt;Sintaxis básica
&lt;/h2&gt;&lt;p&gt;Solo tienes que añadir el campo &lt;code&gt;aliases&lt;/code&gt; en el Front Matter del artículo.&lt;/p&gt;
&lt;p&gt;Ejemplo en YAML:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nn&#34;&gt;---&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;title&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Nuevo título del artículo&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;date&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;ld&#34;&gt;2026-05-17T12:00:00&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;+09&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;00&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;url&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;/new-path/my-new-article/&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;aliases&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;/old-path/old-article/&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;../old-version/&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nn&#34;&gt;---&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Aquí &lt;code&gt;/old-path/old-article/&lt;/code&gt; es una ruta relativa al sitio. &lt;code&gt;../old-version/&lt;/code&gt; es una ruta relativa a la página actual.&lt;/p&gt;
&lt;p&gt;En la práctica, suele ser mejor usar rutas relativas al sitio, es decir, rutas que empiezan con &lt;code&gt;/&lt;/code&gt;. Son más claras y menos propensas a confusión si cambia la estructura de directorios del artículo.&lt;/p&gt;
&lt;h2 id=&#34;relación-con-el-campo-url&#34;&gt;Relación con el campo url
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;url&lt;/code&gt; define la nueva dirección de la página actual.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;aliases&lt;/code&gt; define qué direcciones antiguas redirigen a esa nueva dirección.&lt;/p&gt;
&lt;p&gt;Por ejemplo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;url&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;/new-path/my-new-article/&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;aliases&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;/old-path/old-article/&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Después de compilar el sitio, quien visite &lt;code&gt;/old-path/old-article/&lt;/code&gt; será redirigido a &lt;code&gt;/new-path/my-new-article/&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Si el artículo no define &lt;code&gt;url&lt;/code&gt; explícitamente, Hugo genera la dirección de la página actual según la configuración de &lt;code&gt;permalinks&lt;/code&gt;, la fecha, el slug y otras reglas del sitio. &lt;code&gt;aliases&lt;/code&gt; seguirá apuntando a esa página final generada.&lt;/p&gt;
&lt;h2 id=&#34;cómo-implementa-hugo-las-redirecciones-por-defecto&#34;&gt;Cómo implementa Hugo las redirecciones por defecto
&lt;/h2&gt;&lt;p&gt;Por defecto, Hugo genera un archivo HTML independiente para cada alias.&lt;/p&gt;
&lt;p&gt;Ese archivo HTML normalmente usa:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-html&#34; data-lang=&#34;html&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;meta&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;http-equiv&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;refresh&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Esto hace que el navegador redirija automáticamente desde la dirección antigua a la nueva.&lt;/p&gt;
&lt;p&gt;Este método es simple, portable y funciona bien en hosting estático común. Pero en esencia es una redirección del lado del navegador, no una redirección 301 / 302 devuelta por el servidor.&lt;/p&gt;
&lt;p&gt;Para sitios pequeños, esto suele ser suficiente. Mientras la dirección antigua se abra y termine llegando al nuevo artículo, se evitan problemas visibles de 404.&lt;/p&gt;
&lt;h2 id=&#34;cuándo-considerar-redirecciones-del-servidor&#34;&gt;Cuándo considerar redirecciones del servidor
&lt;/h2&gt;&lt;p&gt;Si el sitio está desplegado en Netlify, Cloudflare Pages, Vercel u otra plataforma que soporte reglas de redirección, conviene considerar redirecciones del servidor.&lt;/p&gt;
&lt;p&gt;Las redirecciones del servidor tienen varias ventajas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Responden de forma más directa, sin devolver primero una página HTML intermedia.&lt;/li&gt;
&lt;li&gt;Permiten usar con más claridad códigos 301 o 302.&lt;/li&gt;
&lt;li&gt;Centralizan grandes conjuntos de reglas de migración para revisión y mantenimiento.&lt;/li&gt;
&lt;li&gt;Dan más control sobre migraciones SEO.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Un enfoque común es desactivar la generación predeterminada de páginas alias de Hugo y generar en su lugar el archivo de reglas que necesita la plataforma. Netlify suele usar &lt;code&gt;_redirects&lt;/code&gt;; Cloudflare Pages puede usar &lt;code&gt;_redirects&lt;/code&gt; o reglas propias de la plataforma.&lt;/p&gt;
&lt;p&gt;Si eliges esta ruta, revisa &lt;code&gt;disableAliases&lt;/code&gt; y los custom output formats de Hugo. No elimines simplemente &lt;code&gt;aliases&lt;/code&gt;, porque entonces los enlaces antiguos pasarán a ser 404.&lt;/p&gt;
&lt;h2 id=&#34;precauciones-al-usar-aliases&#34;&gt;Precauciones al usar aliases
&lt;/h2&gt;&lt;p&gt;Primero, no uses &lt;code&gt;aliases&lt;/code&gt; como excusa para cambiar URL sin cuidado.&lt;/p&gt;
&lt;p&gt;Cuando una URL se publica, entra en buscadores, RSS, redes sociales, marcadores y referencias externas. Cambiar URL con frecuencia crea coste de mantenimiento. &lt;code&gt;aliases&lt;/code&gt; encaja mejor para reparar problemas históricos que para fomentar cambios constantes de ruta.&lt;/p&gt;
&lt;p&gt;Segundo, evita bucles de redirección.&lt;/p&gt;
&lt;p&gt;Las direcciones antiguas deben apuntar a la nueva dirección de la página actual. No hagas que A redirija a B y B vuelva a A, ni permitas que varias páginas reclamen el mismo alias.&lt;/p&gt;
&lt;p&gt;Tercero, cuidado con los prefijos de idioma en sitios multilingües.&lt;/p&gt;
&lt;p&gt;Los sitios multilingües de Hugo suelen manejar rutas de idioma automáticamente. Si escribes un alias dentro de una versión de idioma, a veces no necesitas añadir manualmente prefijos como &lt;code&gt;/en/&lt;/code&gt; o &lt;code&gt;/zh-tw/&lt;/code&gt;. Si lo haces, puedes generar rutas duplicadas como &lt;code&gt;/en/en/...&lt;/code&gt;. Verifica siempre el resultado de la compilación local.&lt;/p&gt;
&lt;p&gt;Cuarto, revisa el directorio generado después del cambio.&lt;/p&gt;
&lt;p&gt;Tras añadir un alias, compila el sitio y comprueba si aparece el &lt;code&gt;index.html&lt;/code&gt; correspondiente a la ruta antigua dentro de &lt;code&gt;public&lt;/code&gt;. También confirma que el destino de la redirección dentro de ese archivo es correcto.&lt;/p&gt;
&lt;h2 id=&#34;un-flujo-práctico-de-comprobación&#34;&gt;Un flujo práctico de comprobación
&lt;/h2&gt;&lt;p&gt;Después de editar el Front Matter del artículo:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Confirma la nueva URL del artículo actual.&lt;/li&gt;
&lt;li&gt;Añade la URL antigua en &lt;code&gt;aliases&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Ejecuta una compilación de Hugo.&lt;/li&gt;
&lt;li&gt;Comprueba si &lt;code&gt;public&lt;/code&gt; contiene el &lt;code&gt;index.html&lt;/code&gt; de la URL antigua.&lt;/li&gt;
&lt;li&gt;Abre el HTML generado y confirma que redirige a la nueva URL.&lt;/li&gt;
&lt;li&gt;En páginas multilingües, revisa especialmente que no haya prefijos de idioma duplicados.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Este flujo detecta la mayoría de problemas de rutas antes del despliegue.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;aliases&lt;/code&gt; es la herramienta ligera de Hugo para conservar enlaces antiguos.&lt;/p&gt;
&lt;p&gt;Es especialmente útil al cambiar URL de artículos, migrar blogs, fusionar páginas y reparar rutas incorrectas. Los sitios estáticos comunes pueden usar directamente las páginas HTML de redirección generadas por Hugo. Los sitios más grandes, o aquellos con requisitos SEO más estrictos, pueden pasar a reglas de redirección del servidor.&lt;/p&gt;
&lt;p&gt;La clave no es solo que las URL nuevas se vean mejor. También hay que cuidar las URL antiguas que ya existen. Un sitio que lleva las URL antiguas de forma estable a las páginas nuevas tiene menos riesgo de perder tráfico histórico durante migraciones y rediseños.&lt;/p&gt;
&lt;h2 id=&#34;referencias&#34;&gt;Referencias
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://gohugo.io/content-management/urls/#aliases&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Hugo Documentation: Aliases&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://gohugo.io/content-management/urls/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Hugo Documentation: URL management&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        
    </channel>
</rss>
