¿Qué es el formato de archivo HTACCESS?
.htaccess es un archivo de configuración del servidor web Apache. A diferencia de la mayoría de los archivos, .htaccess no incluye un nombre de archivo antes del punto; el punto inicial es parte del nombre mismo, lo que lo convierte en un archivo oculto por defecto en Linux y macOS. Los archivos .htaccess no deben ser editados manualmente por usuarios no autorizados o no calificados. El archivo almacena toda la configuración en texto plano.
Los archivos .htaccess contienen ajustes de configuración por directorio que definen funciones del servidor como:
- la página de índice (por defecto) de un directorio,
- restricciones de acceso para direcciones IP específicas,
- páginas de error personalizadas (por ejemplo, 404 Page Not Found),
- redirecciones y reescrituras de URL (
RewriteRule/RewriteCond), - protección de directorios por contraseña (
AuthType,AuthUserFile), - ajustes de seguridad adicionales del servidor y encabezados de respuesta HTTP personalizados.
Para que .htaccess surta efecto, AllowOverride debe estar configurado en algo distinto a None en el httpd.conf principal; en servidores endurecidos, el procesamiento de .htaccess a menudo está deshabilitado por completo.
Debido a que Apache lee .htaccess en cada solicitud HTTP a su directorio, conlleva un costo de rendimiento medible. La propia documentación de Apache recomienda colocar las directivas equivalentes en bloques de configuración del servidor o VirtualHost en su lugar, ya que estos se cargan solo una vez al inicio.
.htaccess es específico de Apache; Nginx no lo admite y requiere reglas equivalentes en nginx.conf. El archivo complementario .htpasswd almacena credenciales cifradas para la Autenticación Básica HTTP.
Seguridad y protección
RIESGO: HIGH.htaccess en sí mismo es un archivo de texto inofensivo para abrir en un editor. Sin embargo, representa una superficie de ataque CRÍTICA en servidores web: 1. Ataque de subida: si una aplicación web permite a los usuarios subir archivos a un directorio accesible por la web y el AllowOverride de Apache permite .htaccess, un atacante que suba un .htaccess manipulado puede volver a habilitar la ejecución de PHP en un directorio de subida y ejecutar webshells. Mitigación: almacene las subidas fuera de la raíz del documento; establezca AllowOverride None para los directorios de subida; bloquee la creación de .htaccess en los directorios de subida. 2. Divulgación de información: un servidor mal configurado que sirve .htaccess como un archivo de texto (en lugar de bloquear el acceso a los archivos de punto) expone la configuración del servidor, la estructura de directorios y potencialmente referencias a credenciales. La configuración por defecto de Apache bloquea el acceso a los archivos .htaccess (FilesMatch ^\.ht).
Detalles del formato
en pocas palabrasProgramas que abren archivos HTACCESS
Detalles técnicos
especificación profunda| Origen | Heredado de NCSA HTTPd (1994); Apache HTTP Server lo admite desde la versión 1.0 (1995) |
| Nombre de archivo | Dotfile - el nombre de archivo completo es `.htaccess`; oculto por defecto en Unix y macOS |
| Tipo de archivo | Configuración de Apache por directorio en texto plano |
| Codificación | UTF-8 o ASCII (debe coincidir con la configuración regional del servidor) |
| Tamaño de archivo típico | 100 bytes - 50 KB (la mayoría de los archivos pesan menos de 5 KB) |
| Frecuencia de procesamiento | Leído por Apache en cada solicitud HTTP al directorio que lo contiene y a todos los subdirectorios |
| Prerrequisito | `AllowOverride` no debe ser `None` en el `httpd.conf` principal; de lo contrario, `.htaccess` se ignora silenciosamente |
| Directivas comunes | `RewriteRule`, `RewriteCond`, `ErrorDocument`, `AuthType`, `AuthUserFile`, `Header`, `Options`, `Redirect` |
| Sintaxis de control de acceso | Apache 2.4 reemplazó `Allow`/`Deny` con `Require`; la sintaxis antigua requiere `mod_access_compat` |
| Compatibilidad con Nginx | No admitido por Nginx; las reglas deben traducirse manualmente a directivas de `nginx.conf` |
| Nota de rendimiento | Provoca lecturas de disco por solicitud; Apache recomienda preferir `httpd.conf` o bloques VirtualHost para la configuración |
| Riesgo de seguridad | Un archivo `.htaccess` subido por un atacante en un directorio web con permisos de escritura puede habilitar la ejecución de scripts en el servidor |
| Lanzado | 1994 (NCSA HTTPd, predecessor to Apache; Apache inherited it from 1995) |
| Última versión | Apache HTTP Server 2.4.x directive syntax (current) |
| Estándar abierto | Sí · libre de regalías |
| Especificación | httpd.apache.org |
Conversiones de HTACCESS
Preguntas y respuestas de la comunidad
preguntado por usuariosAún no hay preguntas; sea el primero en preguntar sobre los archivos HTACCESS.