Si no sabes de lo que estoy hablando, es cuando visitas un sitio web y la URL se ve algo así https://example.com/about.html. Específicamente, la ultima parte .html
. La mayoría de las personas les gustaría ver algo como https://example.com/about. ¿Es más bonito, no te parece?
Afortunadamente, es bastante fácil de hacer en un sitio web estático. Aquí te muestro dos formas de hacerlo.
Método 1: Poner las páginas en carpetas
Por ejemplo, si tenemos una estructura de páginas como esta:
|-- 📄 index.html
|-- 📄 about.html
Podemos mover las páginas a carpetas con el mismo nombre:
|-- 📄 index.html
|-- 📁 about
|-- 📄 index.html
Eso sería todo. Ahora, si visitas https://example.com/about, se mostrará el contenido de about/index.html
.
Bueno, todo está bien si solo tienes un par de páginas en tu sitio web. ¿Qué pasa si tienes un blog con decenas, o incluso cientos de páginas? Puede que no sea factible reestructurar todo tu sitio para eliminar la extensión HTML de tus URLs.
Método 2: Usar un archivo .htaccess
Otra alternativa es usar el archivo .htaccess
para eliminar la extensión de la URL. Esto se hace de manera muy simple en unas pocas líneas.
En el directorio raíz /
, creamos un archivo .htaccess
y agregamos el siguiente código:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/$ $1.html
RewriteRule ^([^/]+)/([^/]+)/$ /$1/$2.html
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)$ /$1/ [R=301,L]
Lo que este fragmento de código hace es eliminar .html
de la URL. También redirigirá a cualquiera que visite una URL con .html
al final, por lo que no deberías recibir errores 404 si las personas visitan la URL completa.
Conclusión
Con cualquiera de estas soluciones, deberías poder eliminar la extensión HTML de todas tus URL.
Eso es todo por hoy. Si tienes alguna inquietud no dudes en dejármela en los comentario.
¡Gracias por leer!