Algunas técnicas básicas y recomendaciones para saber que y que no hacer con esta, digamos, herramienta: htaccess. Si le dedicamos algunos minutos a estudiar el código podremos entender cómo y por qué razón funciona.
1. Crear una pagina de error personalizada. Creamos como deseamos nuestra página de error en la raíz del sitio y escribimos lo siguiente en el archivo .htaccess:
ErrorDocument 401 /401.php
ErrorDocument 403 /403.php
ErrorDocument 404 /404.php
ErrorDocument 500 /500.php
2. Prevenir navegación por directorios del sitio. Si no colocamos un archivo index en los diversos directorio de nuestro sitio web, nuestros visitantes pueden navegar a través de ellos sin ninguna restricción. Podemos prevenir esto con una sola línea:
Options All -Indexes
3. Configurar página por defecto para cada directorio. Si no deseamos usar una página index en cada directorio, podemos establecer la pagina por defecto.
DirectoryIndex news.html
4. Creando direccionamiento 301. Si necesitamos redireccionar antiguas URLs a sus nuevas ubicaciones, el siguiente código lo hace fácil:
Redirect 301 /original/filename.html http://domain.com/updated/filename.html
5. Comprimir archivos a descargar con GZIP. El siguiente código permite comprimir todos tus archivos JavaScript, CSS y HTML mediante GZIP.
<IfModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text\.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image\.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</IfModule>
6. Redireccionar a conexión segura HTTPS. Si deseamos redireccionar todo el sitio a una conexión segura:
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
7. Bloquear la ejecución de algunos script. Podemos detener la ejecución de script de distintos lenguajes de programación:
Options -ExecCGI
AddHandler cgi-script .pl .py .php .jsp. htm .shtml .sh .asp .cgi
8. Forzar archivo a descargar con un "Guardar como …". Si deseas forzar a descargar un determinado archivo en vez de abrir en el navegador:
AddType application/octet-stream .doc .mov .avi .pdf .xls .mp4
9. Restringir límite de subida de archivos PHP. Podemos reducir el tamaño máximo de archivos PHP a subir, así como el plazo de ejecución:
php_value upload_max_filesize 10M
php_value post_max_size 10M
php_value max_execution_time 200
php_value max_input_time 200
A mi me gustaría aprender a usar el htaccess, pero para el mod_rewrite.