Ocultar la extensión de tus archivos con .htaccess
Un detalle interesante para un proyecto web es hacer que las direcciones de las páginas sean fáciles de interpretar y recordar. Por ejemplo, www.tusitio.com/contacto es mucho mejor que www.tusitio.com/fomulario-contacto.php
Una parte del trabajo lo podemos hacer escogiendo nombres cortos, concisos y de ser posible sin ningún caracter raro en el medio del archivo. Para la otra parte recurrimos al .htaccess. Tenemos que abrirlo del servidor (o crearlo si no existe) y escribir lo siguiente:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
Si la extensión es diferente de PHP reemplazamos “.php” en la segunda y tercera línea por la extensión correspondiente como puede ser ASP, JSP, HTML o la que corresponda.
De este modo va a funcionar la dirección con o sin el nombre de la extensión al final. Sencillo y le da un toque más profesional a tus trabajos.








(9 votos)
Alejandro (4 comments)
# 1 Febrero 24th, 2010Hola Seba… muy bueno el tuto, pero aun no puedo hacerlo funcionar en un directorio donde tengo montado varios archivos .php. Ya subi el .htaccess pero aun no funciona, en que puedo estar errando? Abrazo!!!
Sebastián Thüer (125 comments)
# 2 Febrero 25th, 2010@ale: El .htaccess tiene que estar en el mismo directorio que los archivos PHP, chequeaste eso?
Alejandro (4 comments)
# 3 Febrero 25th, 2010Si, asi es, esta en la misma carpeta, pero aparentemente no lo reconoce o no se por que no funciona.
Sebastián Thüer (125 comments)
# 4 Febrero 25th, 2010@Alejandro: Para que funcione necesitás que haya un link a sitio.com/pagina en lugar de sitio.com/pagina.php. Si escribís el nombre del archivo con la extensión (pagina.php) va a funcionar porque ese recurso existe en el servidor con ese nombre. El .htaccess se procesa cuando hay una petición a la al servidor y este reescribir la dirección, ¿se entiende?
Alejandro (4 comments)
# 5 Febrero 25th, 2010Entendi mas o menos, entonces la pregunta seria, como lo implemento aqui:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
Sebastián Thüer (125 comments)
# 6 Febrero 27th, 2010@Alejandro: Habría que verlo en detalle, depende de la configuración del servidor… Podrías consultar con el soporte técnico de tu hosting. Saludos