Personaliza tu sitio - el poder del htaccess!

publicado el 2007-11-09 por ikki - categoría: Programación

Personaliza tu sitio - el poder del htaccess!

Cuando comenzé a desarrollar mi blog pronto surgieron preguntas como:

  • "¿Cómo oculto ciertos archivos?"
  • "¿Cómo evito el hot-linking?"
  • "¿Puedo cambiar/ocultar la extensión de ciertos archivos?"
  • "¿Puedo personalizar las páginas de errores como el 404?"
...y otras muchas más. Si tu webserver es Apache puedes hacer casi cualquier cosa!

Los servidores Apache cuentan con un archivo de configuración de directorios conocido como .htaccess (hypertext access). Básicamente, lo que el .htaccess hace es permitir configurar cierto directorio para que se comporte de una forma u otra cuando éste sea solicitado (por ejemplo, cuando alguien intenta ingresar a una carpeta con contenido sensible, puedes validar el acceso solicitando al usuario su login/password para permitirle ver su contenido). Es importante que sepas que el efecto de las configuraciones que hagas con el .htaccess sobre un directorio no sólo lo afectarán a él sino también a todos los subdirectorios y archivos contenidos en el mismo, por lo que debes tener mucho cuidado si decides usarlo.

Para crear un archivo .htaccess no necesitas más que un buen editor de texto (inclusive con el notepad puedes hacerlo), escribes en él las configuraciones que deseas para tus directorios y guardas el archivo como .htaccess. Si utilizas Windows, es posible que el sistema operativo te impida guardar el documento que acabas de crear ya que detectará que existe una extensión (.htaccess) pero el archivo no ha sido nombrado. Simplemente puedes darle un nombre provisional y luego removerlo una vez lo hayas subido al directorio donde quieres aplicar la configuración personalizada (por ejemplo, lo guardas como test.htaccess, lo subes y luego lo renombras a .htaccess).

A continuación algunos de los comandos (si se les puede llamar así) que considero son bastante útiles y creo que te van a interesar ^^ :

# prohibir acceso a un archivo determinado

Order deny,allow
Deny from all


# prohibir acceso a un tipo de archivo determinado

Order deny,allow
Deny from all


# evitar el indice
IndexIgnore *

Options -Indexes

# habilitar compresion php para output de data, ahorra bandwith
php_value zlib.output_compression 16386

# evitar el hotlinking
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(nothingtodo\.)?byethost13.com(/)?.*$ [NC]
RewriteRule .*\.(gif|jpe?g|png|bmp)$ [F,NC]

#Mostrar páginas de error personalizadas
#Sintaxis: ErrorDocument  
ErrorDocument 401 /401.html
ErrorDocument 403 /403.html
ErrorDocument 404 /404.html
ErrorDocument 500 /500.htm

# deshabilitar la navegación de directorios
Options All -Indexes

# utilizar una misma página para manejar todos los errores
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ /dir/error.php [L]

# pedirle al navegador que descargue los archivos multimedia en vez de reproducirlos
AddType application/octet-stream .avi
AddType application/octet-stream .mpg
AddType application/octet-stream .wmv
AddType application/octet-stream .mp3

# ocultar extension php
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

Por último es necesario acotar que, antes de que experimientes con el .htaccess, valides si tu hosting permite el uso de este útil y versátil archivo en tu sitio pues de lo contrario no podrás generar ningún cambio y es posible que el hacerlo infrinja alguna de las normativas de tu hosting. Suerte!