Noviembre 04, 2013
enzo
Si somos fanáticos del servidor web Apache para nuestros proyectos web, es muy probable que también seamos fanáticos del módulo mod_rewrite el cual nos permite transformas las URL en llamados a scripts internos o redirecciones a páginas usando reglas escritas en PCRE Expresiones regulares.
Este módulo de Apache funciona muy bien y la forma mas común de habilitarlo para nuestros sitios se muestra a continuación mediante la definición de un Directoty dentro de la configuración de un VirtualHost.
<Directory /var/www/website>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
La anterior instrucción habilita que apache permita el overrride habilitando para que las reglas de nuestro archivo .htaccess sea procesadas de forma automática. Hasta aquí todo bien, pero resulta que esto obliga al Apache que cada vez que se entra en un directorio se intente cargar el archivo de .htacess para procesarlo y como imaginaran esto incluye un esfuerzo adicional en contra del desempeño de nuestro sitio.
Ahora bien como evitamos esto y en todo lado se nos dice que es la forma correcta de hacerlo. Bueno no digo que sea la forma incorrecta solo que quizás no es la mas eficiente.
Veamos un cambio en la configuración anterior para informar a apache que específicamente debe incluir el archivo de .htacess en los directorio que de ante manos sabemos que va a estar disponible.
<Directory /var/www/website>
Options -Indexes -FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
Include /var/www/website/.htaccess
</Directory>
Adicionalmente si nuestra aplicación utiliza .htacess para proteger algunos archivos como las imágenes podemos indicarlo dentro de la configuración de nuestro virtualhost como se aprecia a continuación.
<Directory /var/www/website/files>
Include /var/www/website/files/.htaccess
</Directory>
En lo personal he probado esta técnica para aplicaciones web como Drupal y Wordpress
Espero que haya sido de su agrado.