Tutorial de cómo eliminar extensiones de archivos en .htaccess (.html, .php, etc)

Muchas veces hemos visto al navegar por alguna página que las extensiones de los archivos de la página están ocultos, quedando unas URL muy limpias y organizadas. Esto además, también es más cómodo para recordar páginas o incluso para mejorar el SEO de nuestro sitio.

Para poder limpiar nuestra página de las extensiones de archivos en la URL del navegador, necesitaremos que nuestro hosting tenga habilitado los archivos .htaccess y que podamos trabajar con ellos por FTP, o en nuestro servidor local virtual.

Para quitar la extensión de nuestras páginas en la barra del navegador , hay que introducir el siguiente código en nuestro archivo .htaccess.

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.html [NC,L]

Como podemos leer en el código, funcionaría para los archivos .html; si queremos ocultar la extensión .php habría que cambiar en el código anterior la extensión por .php

Sin embargo, si pegamos este código en el .htaccess y refrescamos nuestra página, veremos que aún siguen apareciendo las extensiones, y es que aún hay que hacer más cambios en nuestra página.

Lo siguiente que tenemos que hacer, es editar los archivos HTML o PHP de nuestra página que contienen enlaces. La manera de hacer los enlaces que teníamos antes de aplicar la configuración en el .htaccess sería esta:

<a href="mi-enlace.html">Mi enlace</a>

Ahora debemos hacer los enlaces sin usar la extensión, como vemos en este ejemplo:

<a href="mi-enlace">Mi enlace</a>

Si además, queremos que al final de la URL se termine poniendo automáticamente una barra /, tendremos que tener este código en el .htaccess:


RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/$ $1.php
RewriteRule ^([^/]+)/([^/]+)/$ /$1/$2.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)$ /$1/ [R=301,L]

Este código es para ocultar la extensión php y además, poner una barra al final de la url. Si lo quieres hacer para tus páginas HTML, tienes que sustituir la extensión php en el código de arriba por la extensión html.

Ya podemos empezar a hacer pruebas y veremos como la URL de nuestra página web ha quedado más limpia. No olvides que la mayoría de servidores son sensibles a mayúsculas y minúsculas a la hora de realizar los enlaces.

Si tienes alguna duda, puedes escribirme abajo en los comentarios.