El archivo .htaccess (HyperText Access) es un archivo de configuración del servidor Apache. Te permite configurar la forma en que tu página o aplicación web responde a las peticiones de los visitante.
Realmente tiene una amplia aplicación puedes bloquear el listado de tus carpetas, reescribir la URL, proteger directorios con contraseña, habilitar la protección de enlaces directos, no permitir el acceso a direcciones IP específicas, cambiar la zona horaria de tu sitio web o alterar la página de índice predeterminada, y mucho más.
Considera los siguiente al crear el archivo .htaccess
1.- El archivo .htaccess modifica la configuración del directorio donde está y los subdirectorios .
2.- Puedes crear este archivo con el bloc de notas o editor que desees “Recuerda que debe llamarse .htaccess “
3.- Si quieres hacer un comentario debes poner primero el caracter # y de ahi escribir tu anotación.
COMANDOS ÚTILES PARA INICIAR
Prevenir la navegación en un directorio
Esto es algo que a veces se nos olvida. Cuando un directorio no tiene la página de index, cualquier visitante puede observar los archivos contenidos en el directorio, y navegar a través de ellos. Si nosotros queremos prevenir esto, sólo debemos escribir lo siguiente:
Options All -Indexes
Página de Error 404 personalizada
Por defecto, el servidor Apache muestra una página de error 404 “404 File Not Found”, cuando nuestros visitantes acceden a una página que en el momento no existe.
Sin embargo, la página por defecto es poco usable y no deja una buena impresión. Por lo que, podríamos crear una página especial, a la cual redirigir cada vez que se produce el error 404.
ErrorDocument 404 /404.html
En caso de que la página de error se encuentre fuera del directorio raíz o en una URL externa, también es posible modificarla. En este caso, los datos a introducir son:
# Mensaje de error personalizado en ubicación local
ErrorDocument 404 http:// www.dominio.tld/ruta-de-acceso/404.html
Comprimir archivos CSS, JavaScript, XML y texto
El siguiente código está diseñado para comprimir el código de salida CSS, JavaScript, XML y de texto antes de ser mostrado en el navegador. La idea básica es ahorrar tiempo en la carga y no consumir tanto ancho de banda.
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/x-javascript
Bloqueo de IPs
Pero el redireccionamiento no lo es todo. Ahora imagina, ¿Qué sucedería si hay un crawlers o un boot spam que sobre carga tu servidor con peticiones inútiles o consultas fastidiosas? ¿Cómo los bloqueamos?
Order allow, deny
Deny from 123.123.123.123
Allow from all
Aumentar la memoria límite de PHP
El uso de aplicaciones PHP está sujeto a un límite de memoria determinado. Este límite determina el espacio máximo de memoria que pueden ocupar los scripts PHP en un servidor. Utilizando el siguiente comando .htaccess es posible aumentar esta capacidad según sea necesario:
# PHP Memory Limit
php_value memory_limit 128M
Cambiar la zona horaria del servidor
En caso de que un servidor se ejecute en el huso horario equivocado, es posible ajustarlo usando el siguiente .htaccess:
#Ajustar la zona horaria predeterminada
SetEnv TZ América / Washington
Redirección de HTTP a HTTPS
Quienes usen un certificado SSL para un dominio, tienen la posibilidad de redireccionarlo a HTTPS usando el siguiente comando .htaccess:
# Activar HTTPS
RewriteEngine On
RewriteCond %{Server_Port} !=443
RewriteRule ^(.*)$ https://tu-dominio.tld/$1 [R=301,L]
Prevenir hotlinking de imágenes
El llamado hotlinking hace referencia a la acción en la que una tercera persona enlaza a un archivo, normalmente una imagen, alojado en otro servidor, generando así un mayor volumen de datos para el dueño de una página web, sin que este tenga la más mínima influencia. Usando algunos trucos de .htaccess, como el siguiente comando, es posible bloquear el acceso a ciertos tipos de archivos en una página web:
# Prevenir hotlinking
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://tu-dominio/.*$ [NC] [OR]
RewriteCond %{HTTP_REFERER} !^http://www.tu-dominio/.*$ [NC] [OR]
RewriteRule .*\.(gif|GIF|jpg|JPG|bmp|BMP|wav|mp3|wmv|avi|mpeg)$ - [F]
Especificar la codificación de los documentos
Los acentos suelen ser problemáticos cuando no existe un charset adecuado. Un fichero .htaccess puede determinar exactamente qué codificación de caracteres usar para cada tipo de documento. Con el siguiente comando es posible codificar todos los documentos bajo el UTF-8:
# Especificar códificación de caracteres
AddDefaultCharset utf-8