Articulo de referencia

.htaccess

Un .htaccess archivo Un archivo .htaccess ( acceso de hipertexto ) es un archivo de configuración a nivel de directorio compatible con varios servidores web , que se utiliza par...

Un archivo .htaccess abierto en un editor de texto
Un .htaccessarchivo

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-Controlencabezados Expiresa través de mod_headerso mod_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 y Headerdirectivas 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. 1 2 "Tutorial del servidor HTTP Apache: archivos .htaccess" . Apache Software Foundation . Consultado el 2 de marzo de 2009 .
  2. "Directiva AllowOverride" . Apache Software Foundation . Consultado el 2 de marzo de 2009 .
  3. "Archivos de configuración" . Apache Software Foundation . Consultado el 2 de marzo de 2009 .
  4. "Uso del archivo .htaccess" . Oracle . Consultado el 2 de marzo de 2009 .
  5. "Tutorial de Apache: Formatos de contraseña" . Apache Software Foundation . Consultado el 2 de marzo de 2009 .
  6. "Ayuda de Herramientas para webmasters: redirecciones 301" . Google . Consultado el 27 de marzo de 2012 .
  7. "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 .
  8. "Tutorial de Apache: Cuándo (no) usar archivos .htaccess" . Apache Software Foundation . Consultado el 12 de enero de 2008 .
  9. "Archivos de configuración" . Apache Software Foundation . Consultado el 12 de enero de 2008 .
  10. "Cuándo no usar archivos .htaccess" . Apache Software Foundation . Consultado el 2 de septiembre de 2009 .
  11. "Cómo convertir entradas .htaccess a httpd.conf" . Consultado el 2 de septiembre de 2009 .
  12. "Protección de la configuración del sistema" . Apache Software Foundation . Consultado el 2 de marzo de 2009 .
  • Tutorial del servidor HTTP Apache: Archivos .htaccess — documentación oficial de Apache