El archivo de configuración .htaccess en servidores web basados en Apache, es una herramienta muy útil que entre otras cosas nos puede ayudar a hacer nuestro site más seguro.
Por ejemplo con ayuda de las directivas DirectoryIndex e Indexes, podemos evitar el listado de archivos de los directorios de nuestro site.
También es importante proteger aquellos archivos y/o directorios considerados críticos, como los directorios de backend o archivos de configuración. Para evitar estos accesos disponemos de reglas que evitarían acceder a determinados directorios, como por ejemplo la regla deny from, que prohibiría el acceso a determinada IP, o la regla allow from que restringiría el acceso a todas salvo a la IP señalada:
order allow,deny deny from 1.2.3.4
Otra forma elegante de evitar el acceso, puede ser haciendo uso de las redirecciones, como por ejemplo:
Redirect 301 /index.php http://www.dominio.com/ Redirect 301 /wp-content/themes/index.php http://www.dominio.com/
Un ejemplo de .htaccess para un Joomla básico es;
## Mod_rewrite in use.
RewriteEngine On
RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteRule .* index.php [F]
RewriteBase /
RewriteRule .* – [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{REQUEST_URI} !^/index\.php
RewriteCond %{REQUEST_URI} /component/|(/[^.]*|\.(php|html?|feed|pdf|vcf|raw))$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L]
## End – Joomla! core SEF Section.
Como hemos visto, el .htaccess nos permite modificar diferentes variables de la configuración de nuestro alojamiento en el servidor. Además de limitar o el acceso a determinados directorios, crear URLs más amigables o fáciles de reconocer, crear diferentes redirecciones, restringir el acceso a direcciones IP’s, evitar el hotlink, o configurar el acceso la web con o sin www.