Fichero htaccess imprescindible de ejemplo

Los ficheros htaccess son imprescindibles a la hora de crear una aplicación web en condiciones. Con ellos podemos realizar muchas acciones que mejoran la funcionalidad y nos ahorrar tiempo de programación.

Para aquellos que no estamos muy acostumbrados al fichero htaccess, nos viene bien una chuleta que nos muestre las acciones más usuales que se pueden realizar en Apache.

Por ello, la gente de AskApache se han creado un fichero de ejemplo con casi todas las cosas que se pueden realizar en un htaccess, prometiendo futuras ampliaciones. Entre las funcionalidades que encontramos está:

  • Opciones genéricas
  • Variables de entorno
  • Mime Types
  • Forzar la descarga del archivo
  • Documentos de error
  • Acciones sobre scripts
  • Cabeceras, caché y optimizaciones
  • Rewrites y redirecciones
  • Autenticación y seguridad
  • SSL
  • Site en construcción

Ultimate htaccess File sample

Laboratorio: Proteger ruta virtual mediante Apache

En otras ocasiones hemos comentado como proteger directorios mediante Apache, incluyendo en el .htaccess los comandos necesarios para ello. El problema viene cuando en vez de proteger una ruta física, queremos proteger un URL virtual, entendiendo URL virtual, aquella que no existe físicamente y que mediante Apache redireccionamos a un script en concreto, por ejemplo:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteBase /
RewriteRule ^clientes index.php?redirect=clientes [QSA,L]

En este caso, si accedemos a http://servidor/cliente, realmente no estaremos accediendo a una ruta física, pero puede ser que queramos que esta url no sea accesible para todo el mundo.

Para proteger una URL virtual debemos usar el comando Location, el cual debemos incluirlo en el httpd.conf o en un dominio virtual, y para protegerlo deberemos usar:

<Location /client>
AuthType Basic
AuthName "Acceso Protegido"
AuthUserFile [ruta .htpasswd]
AuthGroupFile /dev/null
order allow,deny
allow from all
deny from none
require valid-user
</Location>