
Un archivo .htaccess ( acceso de hipertexto ) es un archivo de configuración a nivel de directorio compatible con varios servidores web , que se utiliza para configurar ajustes de acceso a sitios web, como la redirección de URL , el control de acceso y la gestión de tipos MIME . El punto inicial lo convierte en un archivo oculto en entornos tipo Unix .
Un sitio puede contener más de un .htaccessarchivo. Los archivos se ubican dentro del árbol web —dentro de directorios y sus subdirectorios— por lo que también se les llama archivos de configuración distribuidos . [ 1 ]
Cada .htaccessarchivo actúa como una anulación local del archivo de configuración principal del servidor (como httpd.conf) para el directorio que ocupa y todos los subdirectorios que contiene. [ 2 ]
El propósito original —reflejado en el nombre— era el control de acceso por directorio, por ejemplo, requiriendo una contraseña para acceder al contenido web. En la práctica, .htaccessahora los archivos se utilizan para configurar muchos otros ajustes: tipos de contenido, codificación de caracteres , controladores CGI y reglas de reescritura de URL.
Historia
El .htaccessformato de archivo se originó con el servidor HTTPd de NCSA , donde se introdujo para permitir que los usuarios de alojamiento compartido controlaran el acceso a sus propios directorios sin modificar la configuración general del servidor. Cuando se fundó el proyecto Apache HTTP Server en 1995 como continuación de NCSA HTTPd, se conservó el formato y el nombre de archivo por motivos de compatibilidad. [ 1 ] Otros servidores web, incluidos Oracle iPlanet Web Server y Zeus Web Server , añadieron posteriormente .htaccesscompatibilidad, aunque sus formatos de configuración nativos difieren sustancialmente.
Formato e idioma
.htaccessLos archivos utilizan un subconjunto de la sintaxis de directivas del servidor HTTP Apache , que tiene el mismo formato que el httpd.confarchivo de configuración principal del servidor. [ 3 ] Las directivas son instrucciones de texto plano, una por línea, que Apache interpreta en cada solicitud.
Algunas directivas, en particular las proporcionadas por mod_rewrite , aceptan expresiones regulares que utilizan la sintaxis PCRE . PCRE se utiliza únicamente dentro de esas directivas específicas (como RewriteRuley RewriteCond); no es una propiedad del .htaccessformato en sí.
Por razones históricas, el formato es reconocido por servidores como Oracle iPlanet Web Server [ 4 ] y Zeus Web Server , aunque esos servidores utilizan formatos de configuración nativos diferentes.
Uso común
- Autorización y autenticación
- Un .htaccessarchivo suele restringir el acceso a un directorio. A menudo se combina con un .htpasswdarchivo que almacena nombres de usuario y hashes de contraseñas . [ 5 ]
- Reescritura de URL
- Los servidores utilizan .htaccessmod_rewrite para reescribir URL largas o complejas a formatos más cortos y legibles.
- Control de acceso
- Las directivas
Allowy (o en Apache 2.4) restringen el acceso por dirección IP, dominio u otros criterios, y pueden bloquear bots o referentes no deseados.DenyRequire - El lado del servidor incluye
- Esta
Options +Includesdirectiva habilita el procesamiento de inclusión del lado del servidor para un directorio. - Listado de directorio
- Esta
Optionsdirectiva controla si el servidor genera un índice automático cuando no hay ningún documento predeterminado presente. - Respuestas de error personalizadas
- La
ErrorDocumentdirectiva asigna códigos de error HTTP, como 404 Not Found o 301 Moved Permanently , a páginas personalizadas. [ 6 ] - Tipos MIME
- Esta
AddTypedirectiva indica a Apache cómo servir archivos con extensiones no estándar o inexistentes. - Control de caché
- .htaccessLos archivos pueden configurar
Cache-ControlencabezadosExpiresa través demod_headersomod_expires, reduciendo el uso de ancho de banda y la carga del servidor. [ 7 ] - HTTPS y HSTS
- La aplicación de HTTPS en Apache generalmente requiere
RewriteRuledirectivas yHeaderdirectivas en .htaccess. Los errores de sintaxis en estas reglas pueden causar redirecciones fallidas o una implementación HSTS defectuosa.
Ventajas
- Efecto inmediato
- Dado que .htaccesslos archivos se leen con cada solicitud, los cambios surten efecto de inmediato, a diferencia de la configuración principal del servidor, que requiere reiniciar el servidor.
- Usuarios no privilegiados
- En servidores de alojamiento web compartido , .htaccesspermite a los usuarios individuales ajustar su propia configuración de directorio sin acceso a los archivos de configuración principales del servidor. [ 8 ]
Desventajas
Generalmente se prefiere utilizar el archivo de configuración del servidor principal httpd.conf[ 9 ] por razones de rendimiento y seguridad: [ 10 ]
- Actuación
- Cada solicitud HTTP hace que Apache compruebe si hay .htaccessarchivos en el directorio solicitado y en cada directorio padre donde se permiten anulaciones. En servidores con mucho tráfico, esto añade una sobrecarga considerable al sistema de archivos. Las directivas se pueden migrar .htaccesspara httpd.confeliminar este coste. [ 11 ]
- Seguridad
- Permitir a los usuarios modificar la configuración del servidor puede introducir problemas de seguridad si las directivas permitidas no se restringen cuidadosamente. [ 12 ]
- Sensibilidad sintáctica
- Apache devolverá un error del servidor (normalmente 500) para todo el directorio si el .htaccessarchivo contiene un error de sintaxis, lo que hará que todos los recursos de ese directorio sean inaccesibles.
Véase también
Referencias
- 1 2 "Tutorial del servidor HTTP Apache: archivos .htaccess" . Apache Software Foundation . Consultado el 2 de marzo de 2009 .
- ↑ "Directiva AllowOverride" . Apache Software Foundation . Consultado el 2 de marzo de 2009 .
- ↑ "Archivos de configuración" . Apache Software Foundation . Consultado el 2 de marzo de 2009 .
- ↑ "Uso del archivo .htaccess" . Oracle . Consultado el 2 de marzo de 2009 .
- ↑ "Tutorial de Apache: Formatos de contraseña" . Apache Software Foundation . Consultado el 2 de marzo de 2009 .
- ↑ "Ayuda de Herramientas para webmasters: redirecciones 301" . Google . Consultado el 27 de marzo de 2012 .
- ↑ "Cómo crear y editar el archivo htaccess de WordPress para acelerar tu sitio web" . WP Enlight . 29 de julio de 2017. Archivado del original el 12 de septiembre de 2017. Consultado el 12 de septiembre de 2017 .
- ↑ "Tutorial de Apache: Cuándo (no) usar archivos .htaccess" . Apache Software Foundation . Consultado el 12 de enero de 2008 .
- ↑ "Archivos de configuración" . Apache Software Foundation . Consultado el 12 de enero de 2008 .
- ↑ "Cuándo no usar archivos .htaccess" . Apache Software Foundation . Consultado el 2 de septiembre de 2009 .
- ↑ "Cómo convertir entradas .htaccess a httpd.conf" . Consultado el 2 de septiembre de 2009 .
- ↑ "Protección de la configuración del sistema" . Apache Software Foundation . Consultado el 2 de marzo de 2009 .
Enlaces externos
- Tutorial del servidor HTTP Apache: Archivos .htaccess — documentación oficial de Apache
- Archivos de configuración
- Tecnología web