Esta directiva controla si las peticiones que contienen
información de path añadida (trailing pathname
information) a continuación de un nombre de fichero existente
(o no existente en un directorio que sí existe) serán
aceptadas o rechazadas. La información de path añadida
(trailing pathname information) puede pasarse a los scripts en la
variable de entorno PATH_INFO
.
Por ejemplo, suponga que la ubicación /test/
se refiere a un directorio que contiene un único fichero:
here.html
. Entonces, tanto las peticiones a
/test/here.html/more
como las peticiones a
/test/nothere.html/more
toman /more
como
PATH_INFO
.
Los tres argumentos que puede tomar la directiva
Off
/test/here.html/more
como en el ejemplo de arriba, devolverá el mensaje de error
404 NOT FOUND.On
/test/here.html/more
será aceptado si
/test/here.html
se refiere a un fichero
válido.Default
PATH_INFO
. Los
handlers que sirven scripts, como cgi-script e isapi-handler, generalmente aceptan
PATH_INFO
por defecto.El propósito principal de la directiva
AcceptPathInfo
es permitirle hacer prevalecer su
propio criterio sobre el del handler acerca de si se debe aceptar
o rechazar PATH_INFO
. Esto es necesario por ejemplo,
cuando use un filtro, como INCLUDES, para generar contenido
basado en PATH_INFO
. El handler básico
rechazaría normalmente la petición. Puede usar la
siguiente configuración para activar dicho script:
Durante el procesamiento de una petición el servidor busca el primer fichero de configuración de esta lista de nombres en cada directorio de la ruta del documento, siempre y cuando los ficheros de configuración distribuida estén activados para ese directorio. Por ejemplo:
Antes de devolver el documento
/usr/local/web/index.html
, el servidor leerá
/.acl
, /usr/.acl
,
/usr/local/.acl
y /usr/local/web/.acl
buscando directivas, a menos que hayan sido desactivados con
text/plain
o text/html
Esta directiva especifica un valor por defecto para el
parámetro del conjunto de caracteres que se añade
añade si solo si el tipo de contenido de una respuesta es
text/plain
o text/html
. EL valor
pecificado en esta directiva no prevalecerá si cualquier otro
conjunto de caracteres es especificado en el cuerpo del documento
por medio de una etiqueta META
, aunque a menudo, el
comportamiento exacto está determinado por la
configuración del cliente. Si se especifica
AddDefaultCharset Off
, se desactiva esta
funcionalidad. AddDefaultCharset On
activa el uso del
conjunto de caracteres por defecto interno de Apache,
iso-8859-1
. Cualquier otro valor se asume que es el
charset a usar, que será uno los registrados
por la IANA como tipos MIME. Por ejemplo:
Esta directiva activa un filtro de salida en particular para las peticiones en función del tipo MIME de la respuesta.
El siguiente ejemplo usa el filtro DEFLATE
, del
módulo text/html
o text/plain
antes de ser
enviada al cliente.
Si quiere que los contenidos sean procesados por más de un
filtro, debe separar sus nombres con puntos y comas
(;). Tambén es posible usar la directiva
La configuración que se muestra más abajo hace que
todos los scripts etiquetados como text/html
sean
procesados primero por el filtro INCLUDES
y
posteriormente por el filtro DEFLATE
.
Activar filtros con la
directiva
Si quiere estar seguro de que se apliquen los filtros, asigne
el tipo de contenido a un recurso explícitamente, por ejemplo
con la directiva
Los filtros de salida por tipo no se aplican nunca en peticiones proxy.
La directiva %2F
para /
y
%5C
para \
en función del
sistema). Normalmente, tales URLs se rechazan y se devuelve un
mensaje de error 404 (Not found).
Especificar el valor On
en la directiva
PATH_INFO
.
Permitir barras codificadas
no implica su decodificado. La aparición
de %2F
o %5C
(según el sistemas
de que se trate) se dejará como tal en la cadena de
caracteres que conforma la de otra manera URL decodificada.
.htaccess
Cuando el servidor encuentra un fichero .htaccess
(como se explica en la directiva
Cuando el valor de esta directiva es None
,
entonces los ficheros .htaccess son
ignorados completamente. En ese caso, el servidor ni siquiera
intentará leer los archivos .htaccess
existentes.
Cuando el valor especificado en esta directiva es
All
, entonces cualquier directiva que tenga Context .htaccess puede ser
usada en los ficheros .htaccess
.
El tipo de directiva puede ser uno de los siguientes grupos de directivas.
Ejemplo:
En el ejemplo de arriba todas las directivas que no están
en el grupo AuthConfig
ni en el grupo
Indexes
provocan un error interno del servidor.
Esta directiva especifica el nombre de dominio que se muestra
al solicitar autorización para acceder a un directorio. Este
nombre de dominio se muestra al cliente para que el usuario sepa
qué nombre de usuario y contraseña ha de introducir.
Por ejemplo:
La cadena de caracteres que se especifique como valor de
AuthName
será lo que aparecerá en el cuadro
de diálogo de acceso de la mayoría de los
navegadores.
Esta directiva selecciona el tipo de autentificación de
usuarios que usará para un directorio. Actualmente solamente
están implementadas las opciones Basic
y
Digest
.
Para que funcione correctamente, esta directiva tiene que ir
acompañada por las directivas
Esta directiva se usa para controlar la forma en que Apache
encuentra el intérprete para ejecutar scripts CGI. Por
ejemplo, si usa CGIMapExtension sys:\foo.nlm .foo
,
todos los scripts CGI con extensión .foo
se
pasarán al intérprete FOO.
Content-MD5
Esta directiva permite la generación de cabeceras
Content-MD5
según se definen en RFC1864 y
RFC2068.
MD5 es un algoritmo que genera una cadena de caracteres ("message digest", a veces llamado "huella dactilar") a partir de unos datos de longitud arbitraria. La forma en que funciona este algoritmo hace que con casi toda seguridad, si se producen alteraciones en los datos originales, el "message digest" generado también será diferente.
La cabecera Content-MD5
es una forma de comprobar
la integridad de un mensaje de principio a fin (MIC) para los
mensajes HTTP (entity-body). Un proxy o un cliente pueden
comprobar esta cabecera para detectar modificaciones accidentales
en el mensaje HTTP (entity-body) en tránsito. Cabecera de
ejemplo:
Tenga en cuenta que el uso de esta directiva puede provocar un menor rendimiento de su servidor porque el "message digest" se genera en cada petición (los valores no se guardan).
La cebecera Content-MD5
se envía solamente
cuando un documento es servido por
Hay veces en las que se pide al servidor que devuelva un documento cuyo tipo MIME no puede determinar.
El servidor tiene que informar al cliente del tipo de contenido
del documento. En el caso de que se trate de un tipo desconocido,
se usa el tipo DefaultType
. Por ejemplo:
sería apropiado para un directorio que contenga muchas
imagenes tipo GIF cuyos nombres de fichero no tengan la
extensión .gif
.
Tenga en cuenta que a diferencia de
Las directivas </Directory>
se usan para englobar un grupo
de directivas que se aplicarán solamente al directorio
especificado y a sus subdirectorios. Puede incluir a cualquier
directiva cuyo uso esté permitido en un contexto
<directory>. Directory-path puede ser tanto la
ruta completa a un directorio, como una cadena de caracteres
comodín que use las reglas de equivalencia de los shells de
Unix. En una cadena de caracteres comodín, el carácter
?
equivale a cualquier carácter individual, y
*
equivale a cualquier secuencia de
caracteres. También puede usar []
para expresar
rangos de caracteres. Ninguno de los caracteres comodín
equivale al carácter `/', de modo que <Directory
/*/public_html>
no equivale a
/home/user/public_html
, pero sí a
<Directory /home/*/public_html>
. Ejemplo:
Tenga especial cuidado con los argumentos de
directory-path: tienen que equivaler literalmente a
la ruta del sistema de ficheros que Apache usa para acceder a
los ficheros. Las directivas aplicadas a un
<Directory>
en particular no se
aplicarán a los ficheros de ese mismo directorio pero que
sean accedidos mediante una ruta diferente, como por ejemplo
mediante enlaces simbólicos diferentes.
También pueden usar expresiones regulares extendidas,
añadiendo el carácter ~
. Por ejemplo:
equivaldría a los directorios en /www/
cuyo
nombres consistan en tres números.
Si varias (expresiones no regulares) secciones
para acceder al documento /home/web/dir/doc.html
los pasos son:
AllowOverride None
(desactivando los ficheros .htaccess
).AllowOverride FileInfo
(para el directorio /home
).FileInfo
en
/home/.htaccess
, /home/web/.htaccess
y
/home/web/dir/.htaccess
por ese orden.Las expresiones regulares no se tienen en cuenta hasta que todas las secciones normales hayan sido aplicadas. En ese momento todas se evalúan las expresiones regulares en el orden en que aparecen en el fichero de configuración. Por ejemplo, con
la sección de expresiones regulares no será
considerada hasta después de que todas las directivas
.htaccess
hayan sido aplicados. Solamente entonces
las expresiones regulares que tengan una equivalencia con
/home/abc/public_html/abc
y la correspondiente
directiva
Tenga en cuenta que por defecto el acceso de Apache a
<Directory />
es Allow from All
.
Esto significa que Apache servirá cualquier fichero que se
corresponda con una URL. Se recomienda que modifique este
comportamiento con un bloque del siguiente tipo
y haga prevalecer una configuración diferente para los solamente para los directorios que usted quiera que sean accesibles. Consulte la sección Consejos de seguridad para obtener más información.
Las secciones "directory" se usan en el archivo
httpd.conf
. Las directivas
</DirectoryMatch>
se usan para englobar a un
grupo de directivas que se aplicarán solamente al directorio
(y los subdirectorios de éste) especificado, al igual que
equivaldrá a los directorios en /www/
cuyo nombre
consista en tres números.
Esta directiva especifica el directorio desde el cuál
esto quiere decir que una petición de acceso a
http://www.my.host.com/index.html
se refiere a
/usr/web/index.html
en el sistema de ficheros.
El directorio que especifique en
Esta directiva controla si
El mapeo de memoria supone a veces una mejora en el rendimiento. Sin embargo, en ciertos entornos, es mejor desactivar el mapeo de memoria para evitar problemas operacionales:
Para configuraciones del servidor que son sensibles a estos problemas, debe desactivar el uso del mapeo en memoria especificando:
Para ficheros montados en NFS, puede desactivar esta funcionalidad explícitamente para los archivos implicados especificando:
Esta directiva controla si
El mecanismo sendfile evita operaciones separadas de lectura y envío, y reservas de buffer. Sin embargo, en algunas plataformas o en algunos sistemas de ficheros, es mejor desactivar esa funcionalidad para evitar problemas operacionales:
Para configuraciones del servidor que son sensibles a estos problemas, debe desactivar esta funcionalidad especificando:
Para archivos montados en NFS o SMB, esta funcionalidad puede ser desactivada explícitamente para los ficheros que puedan ocasionar problemas mediante:
En el caso de que aparezca un problema o error, puede configurar Apache para hacer una de las siguientes cuatro cosas,
La primera opción es la que se usa por defecto, mientras
que el resto se pueden configurar usando la directiva
Las URLs pueden empezar por una barra (/) para URLs locales, o pueden ser una URL completa que el cliente pueda resolver. También se puede hacer que el nevagador despliegue un mensaje. Ejemplos:
Adicionalmente, el valor especial default
puede
ser usado para que Apache use los mensajes literales que trae por
defecto. Aunque bajo circunstancias normales no es necesario,
default
restaura los mensajes literales de Apache en
configuraciones que de otra manera heredan una directiva
Tenga en cuenta que si usted especifica en
http
), Apache redireccionará al cliente, incluso
si al final, el documento al que redirecciona está en el
mismo servidor. Esto tiene varias implicaciones, la más
importante es que el cliente no recibirá el código de
error original, sino que en su lugar recibirá el código
de estado del redireccionamiento. Esto puede confundir a los
robots web y otros clientes que tratan de determinar si una URL es
válida usando el código de estado. Además, si usa
una URL remota en un ErrorDocument 401
, el cliente no
sabrá pedir contraseñas al usuario porque no
recibirá el código de estado 401. Por tanto, si
usa una directiva ErrorDocument 401
entonces
debe referirse a un documento local.
Microsoft Internet Explorer (MSIE) ignorará por defecto los mensajes de error generados por el servidor cuando sean "demasiado pequeños" y los sustituirá por mensajes de error propios. El tamaño se considera pequeño según el tipo de error de que se trate, pero en general, si su mensaje de error es de más de 512 bytes, MSIE mostrará en mensaje del error generado por el servidor y no el suyo. Puede encontrar más información sobre este asunto en el artículo de la Base de Datos de Conocimiento de Microsoft Q294807.
En las versiones de Apache anteriores a la 2.0, los mensajes se indicaban añadiendoles dobles comillas (") al principio que no se cerraban al final del mensaje.
La directiva
Si el file-path empieza con un barra vertical (|) entonces se asume que es un comando para procesar el registro de errores (error_log).
Usar syslog
en lugar de un nombre de fichero
permite almanecer los mesajes mediante syslogd(8) si el sistema lo
soporta. Por defecto se usa la utilidad de syslog
local7
, pero puede cambiar esto usando
syslog:facility
donde facility
es cualquiera de los nombres normalmente documentados en
syslog(1).
SEGURIDAD: Consulte la sección consejos sobre seguridad para obtener más información sobre cómo se compromete la seguridad de su sistema si sobre el directorio en que se almacenan los ficheros log tiene permisos cualquier usuario que no sea únicamente el que arranca el servidor.
Cuando se especifica una ruta a un fichero en una plataforma que no es Unix, hay que tener cuidado de usar solo barras (/) aunque el sistema permita barras invertidas (\). En general, lo mejor es usar siempre barras / en los ficheros de configuración.
La directiva ETag
(etiqueta de entidad) del campo cabecera de respuesta cuando el
documento está basado en un fichero. (El valor de
ETag
se usa en la gestión de cache para ahorrar
ancho de banda.) En Apache 1.3.22 y en versiones anteriores, el
valor de ETag
se formaba siempre a partir
del inodo del fichero, su tamaño y la hora y la fecha en que
se modificó por última vez (mtime). La directiva
ETag
será incluido en la respuestaLas palabras clave INode
, MTime
, y
Size
pueden ir precedidas por +
o
-
, lo cual permite hacer cambios en la configuración
heredada de un ámbito más amplio. Cualquier palabra clave que
aparezca sin un prefijo cancela inmediatamente la configuración
heredada.
Si la configuración para un directorio incluye
FileETag INode MTime Size
, y la de un subdirectorio
incluye FileETag -INode
, la configuración para
ese subdirectorio (que será heredada por cualquier
subdirectorio que no tenga un configuración propia) será
equivalente a FileETag MTime Size
.
La directiva </Files>
. Las directivas usadas en
esta sección se aplicarán a cualquier objeto con un nombre base
(último componente del nombre de fichero) que coincida con el nombre de fichero especificado. Las
secciones .htaccess
, pero antes de las secciones
El argumento filename puede incluir un nombre de
fichero, o una cadena de carácteres comodín, donde ?
equivale a cualquier carácter individual, y *
equivale a cualquier secuencia de caracteres. También pueden
usarse expresiones regulares extendidas, con la ventaja de que
tambien se puede usar el carácter ~
. Por
ejemplo:
equivaldría a la mayoría de los formatos gráficos de
Internet. No obstante, es mejor usar
Tenga en cuenta que a diferencia de las secciones .htaccess
. Esto permite a los
usuarios controlar el acceso a sus propios archivos, a un nivel de
fichero a fichero.
La directiva
equivaldría a la mayoría de los formatos gráficos de Internet.
Cuando se usa en un fichero .htaccess
o en una
sección .gif
,
puede usar:
Tenga en cuenta que a diferencia de
Puede hacer que None
:
Esta directiva activa la resolución de DNS de manera que
los nombres de host puedan ser guardados en los archivos log (y
pasados a CGIs/SSIs en REMOTE_HOST
). El valor
Double
se refiere a hacer una busqueda de DNSs
inversa doble. Esto es, después de hacer una busqueda
inversa, se hace una busqueda normal posteriormente sobre ese
resultado. Al menos una de las direcciones IP en la búsqueda
posterior debe equivaler a la dirección IP original. (En
terminología de "tcpwrappers" se llama
PARANOID
.)
Independientemente de lo que se especifique, cuando
HostnameLookups Double
. Por
ejemplo, si especifica solo HostnameLookups On
y se
hace una petición a un objeto protegido por restricciones de
nombre de host, independientemente de si la consulta inversa doble
falla o no, el resultado de la consulta inversa simple se
pasará a los CGIs en REMOTE_HOST
.
El valor por defecto es Off
para ahorrar
tráfico de red en aquellos sitios web que realmente no
necesitan hacer búsquedas inversas dobles. También es
mejor para los usuarios finales porque no tienen que sufrir el
retardo adicional que introducen las búsquedas. Los sitios
web con mucha carga deben usar en esta directiva el valor
Off
, porque las búsquedas de DNSs pueden
consumir una cantidad de tiempo considerable. La utilidad
bin
de su directorio de
instalación, puede usarse más tarde para buscar nombres
de host en direcciones IP que estén en los logs cuando no
esté en línea.
Esta directiva permite el almacenamiento en logs, según se especifica en el RFC1413, del nombre de usuario remoto para casda conexión cuando la máquina del cliente corra "identd" o un programa similar. Esta información se registra en el log de acceso.
La información que se registra con este procedimiento no debe ser considerada como fiable excepto para controles rudimentarios.
Tenga en cuenta que esto puede provocar serios problemas de retardo en los accesos a su servidor porque para cada petición hay que ejecutar una consulta de este tipo. Cuando hay firewalls involucrados, cada búsqueda puede probablemente fallar y añadir 30 segundos de retardo cada vez que se intenta un acceso. De modo que en general, su uso no es muy útil en servidores públicos accesibles desde Internet.
La sección <IfDefine
test>...</IfDefine>
se usa para marcar
directivas que son condicionales. Las directivas que hay dentro de
una sección
El test en la sección de directivas
!
parameter-nameEn el primer caso, las directivas entre los marcadores de comienzo y final se procesan solo si el parámetro llamado parameter-name está definido. El segundo formato hace lo contrario, y procesa las directivas solo si parameter-name no está definido.
El argumento parameter-name se define cuando se
ejecuta -Dparameter
, al iniciar el servidor.
Las secciones
La sección <IfModule
test>...</IfModule>
se usa para marcar
las directivas que se aplican si está presente un módulo
específico. Las directivas dentro de una sección
El test de las secciones
En el primer caso, las directivas entre los marcadores de
comienzo y final son procesados solo si el módulo llamado
module name está incluido en Apache -- ya sea
porque está compilado en el servidor o porque esté
cargado dinámicamente usando
El argumento module name es el nombre del fichero del
módulo en el momento en que fue compilado. Por ejemplo,
mod_rewrite.c
. Si un módulo consiste en varios
archivos fuente, use el nombre del fichero que contenga la cadena
de caracteres STANDARD20_MODULE_STUFF
.
Las secciones
Esta directiva permite la inclusión de otros ficheros de configuración dentro de los ficheros de configuración del servidor.
Los caracteres comodín de tipo shell (fnmatch()
)
pueden usarse para incluir varios ficheros de una vez por orden
alfabético. Además, si
La ruta del fichero especificada puede ser absoluta, o relativa
a un directorio respecto al valor especificado en
Ejemplos:
O especificando rutas relativas al directorio
Si ejecuta apachectl configtest
le aparecerá
una lista con los ficheros que están siendo procesados
durante la comprobación de la configuración:
La extensión Keep-Alive de HTTP/1.0 y la funcionalidad de
conexión persistente de HTTP/1.1 facilitan la posibilidad de
que se establezcan sesiones HTTP de larga duración que
permiten que se puedan enviar múltiples peticiones sobre la
misma conexión TCP. En algunos casos, esto tiene como
resultado una reducción de casi el 50% en los tiempos de
retardo en el caso de documentos con muchas imágenes. Para
activar las conexiones Keep-Alive, especifique KeepAlive
On
.
Para clientes HTTP/1.0, las conexiones Keep-Alive se usarán solo si el cliente lo solicita específicamente. Además, una conexión Keep-Alive con un cliente HTTP/1.0 puede usarse solo cuando el tamaño del contenido es conocido con antelación. Esto implica que el contenido dinámico, como puede ser el resultado de un CGI, páginas SSI y listados de directorios generados por el servidor, no usarán por lo general conexiones Keep-Alive para clientes HTTP/1.0. Para clientes HTTP/1.1, las conexiones persistentes son las que se usan por defecto a no ser que se especifique lo contrario. Si el cliente lo solicita, se usará @@@@@ chunked encoding @@@@@ para enviar contenido de tamaño desconocido sobre conexiones persistentes.
Es el tiempo en segundos que Apache esperará peticiones
subsiguientes antes de cerrar una conexión persistente. Una
vez que una petición ha sido recibida, se aplica el valor
especificado en la directiva
Espeficificar un valor alto para
Los controles de acceso se aplican normalmente a
todos los métodos de acceso, y este es el
comportamiento que se busca casi siempre. En general, las
directivas de control de acceso no deben estar dentro de una
sección
El propósito POST
,
PUT
, y DELETE
, no afectando al resto de
métodos:
Los métodos incluidos en la lista pueden ser uno o
más de los siguientes: GET
,
POST
, PUT
, DELETE
,
CONNECT
, OPTIONS
, PATCH
,
PROPFIND
, PROPPATCH
, MKCOL
,
COPY
, MOVE
, LOCK
, y
UNLOCK
. Los nombres de los métodos
distinguen mayúsculas de minúsculas. Si usa
GET
también se restringirán las peticiones
HEAD
. El método TRACE
no puede
limitarse.
</LimitExcept>
se usan para englobar un grupo
de directivas de control de acceso que se aplicarán a
cualquier método de acceso HTTP no
especificado en los argumentos; es lo contrario a lo
que hace una sección
Por ejemplo:
Una redirección interna ocurre, por ejemplo, cuando se usa
la directiva
La directiva guarda dos límites diferentes, los cuales se evalúan en para cada petición. El primer número es el número máximo de redirecciones internas, que pueden producirse una detrás de otra. El segundo número determina, la profundidad a la que subpeticiones pueden anidarse. Si especifica solo un número, se asignará a ambos límites.
Esta directiva especifica el número de bytes desde 0 (que significa sin límite) hasta 2147483647 (2GB) que se permite que tenga el cuerpo de una petición.
La directiva PUT
requerirán un valor al menos del mismo tamaño que
cualquier representación que el servidor desee aceptar para
ese recurso.
Esta directiva le da al administrador del servidor un mayor control sobre el comportamiento anormal de peticiones de clientes, lo cual puede ser útil para evitar algunos tipos de ataques de denegación de servicio.
Si, por ejemplo, permite que se suban archivos a una ubicación en concreto, y quiere limitar el tamaño de los ficheros que se suban a 100K, puede usar la siguiente directiva:
Number es un entero entre 0 (sin límite) hasta
32767. El valor por defecto se define por la constante
DEFAULT_LIMIT_REQUEST_FIELDS
al compilar (y es de 100
campos para la cabecera).
La directiva
Esta directiva le da al administrador del servidor un mayor control sobre el comportamiento anormal de peticiones de clientes, lo cual puede ser útil para evitar algunos tipos de ataques de denegación de servicio. Debe incrementar el valor que se especifica en esta directiva si a los clientes normales les llegan mensajes de error que indican que se han enviado demasiados campos de cabecera en la petición.
Por ejemplo:
Esta directiva especifica el número de bytes
desde 0 hasta el valor de la constante definida al compilar
DEFAULT_LIMIT_REQUEST_FIELDSIZE
(8190 por defecto)
que será permitido para una cabecera de las peticiones
HTTP.
La directiva
Esta directiva le da al administrador del servidor un mayor control sobre el comportamiento anormal de peticiones de clientes, lo cual puede ser útil para evitar algunos tipos de ataques de denegación de servicio.
Por ejemplo:
Esta directiva especifica el número de bytes de
0 hasta el valor de la constante definida al compilar
DEFAULT_LIMIT_REQUEST_LINE
( @@@@ 8190 as distributed @@@@ ) que
se permitirá para la línea de petición HTTP.
La directiva GET
.
Esta directiva le da al administrador del servidor un mayor control sobre el comportamiento anormal de peticiones de clientes, lo cual puede ser útil para evitar algunos tipos de ataques de denegación de servicio.
Por ejemplo:
Límite (en bytes) o tamaño máximo del cuerpo de una petición
basada en XML. Si se especifica el valor 0
se
desactiva este control.
Ejemplo:
Una sección </Location>
. Las secciones .htaccess
, y después de las secciones
Las secciones
Use <Location />
, que es un modo fácil
de aplicar una configuración a un servidor entero.
Para todas las peticiones que no provengan de servidores proxy,
la URL de la que se buscan equivalencias es una ruta URL de la
forma /path/
. Ningún esquema, nombre de host,
puerto o cadena de consulta puede incluirse. Para peticiones
provenientes de servidores proxy, la URL de la que se buscan
euivalencias es de la forma scheme://servername/path
,
y debe incluir el prefijo.
La URL puede usar caracteres comodín. En una cadena de
caracteres comodín, ?
equivale a cualquier
carácter, y *
equivale a cualquier secuencia de
caracteres.
También pueden usarse expresiones regulares extendidas,
con el carácter adicional ~
. Por ejemplo:
equivaldrá a las URLs que contengan la subcadena
/extra/data
o /special/data
. La
directiva
El uso de foo.com
, puede usar:
El
carácter de la barra tiene un significado especial
dependiendo del lugar donde aparece en una URL. Los usuarios
puede estar no estar acostumbrada a que la barra tenga distintos
significados, por ejemplo, en los sistemas de ficheros, varias
barras consecutivas tienen el mismo significado que una sola
barra (por ejemplo, /home///foo
es lo mismo que
/home/foo
). Para las URL's esto no se cumple. La
directiva
Por ejemplo, <LocationMatch ^/abc>
podría equivaler a la petición de la URL
/abc
pero no a la petición de la URL
//abc
. La directiva (no regex) <Location
/abc/def>
y la petición es a
/abc//def
se producirá equivalencia.
La directiva
equivaldría a las URLs que contengan la subcadena
/extra/data
ó /special/data
.
Level | Description | Example |
---|---|---|
emerg |
Emergencias - sistema inutilizable. | "Un proceso hijo no puede abrir el fichero de lock (lock file). El programa va a terminar" |
alert |
Debe hacer algo inmediatamente. | "getpwuid: no pudo determinar el nombre de usuario a partir del uid" |
crit |
Condiciones críticas. | "socket: No se encontró un socket adecuado, el proceso hijo va a terminar" |
error |
Condiciones de error. | "Final prematuro de la cabecera del script"" |
warn |
Condiciones de advertencia. | "el proceso hijo 1234 no ha terminado, enviando otra vez SIGHUP" |
notice |
Condición normal, pero significativa. | "httpd: interceptada señal SIGBUS, intentando hacer un volcado de memoria en ..." |
info |
Información. | "El servidor parece estar ocupado, (puede que necesite incrementar StartServers, o Min/MaxSpareServers)..." |
debug |
Mensajes de nivel debug | "Abriendo el fichero de configuración ..." |
Cuando se especifica un determinado nivel, se escriben en el
log también los mensajes de todos los demás niveles por
encima. Por ejemplo, cuando se especifica LogLevel
info
, también se escribirán en el log los
mensajes de los niveles notice
y
warn
.
Se recomienda usar, al menos, el nivel crit
.
Por ejemplo:
Cuando el fichero log es un fichero
normal y se escriben en el mensajes de nivel
notice
, estos mensajes no podrán ser
borrados. Sin embargo, esto no se aplica cuando se usa
syslog
.
La directiva 0
, el número
de peticiones permitidas es ilimitado. Se recomienda que en esta
directiva se especifique un valor alto para obtener el máximo
rendimiento del servidor.
Por ejemplo:
Es necesario usar la directiva
Aunque addr puede ser un nombre de host, se recomienda que use siempre una dirección IP, por ejemplo:
Con la directiva
Tenga en cuenta, que el "servidor principal" y cualquier
servidor _default_
nunca
servirán una petición a un dirección IP
De manera opcional puede especificar un número de puerto en el que debe usarse el host virtual basado en el nombre, por ejemplo
Las direcciones IPv6 deben escribirse entre corchetes, como se muestra en el siguiente ejemplo:
Para recibir peticiones en todas las interfaces de red, puede
usar *
como argumento
Tenga en cuenta que el argumento de la directiva
La directiva
En option puede especificar None
, en
cuyo caso ninguna funcionalidad adicional estará activada, o
puede especificar una o más de las siguientes opciones:
All
MultiViews
. Este es
el valor por defecto.ExecCGI
FollowSymLinks
Aunque el servidor siga los enlaces simbólicos, eso
no cambia la ruta usada para encontrar equivalencias en
las secciones
Tenga en cuenta
también que esta opción es ignorada si está
dentro de una sección
Includes
IncludesNOEXEC
#exec cmd
y #exec cgi
son desactivados. Aunque es posible
#include virtual
(incluir de forma virtual) scripts
CGI desde directorios especificados con Indexes
index.html
) en ese directorio,
entonces MultiViews
SymLinksIfOwnerMatch
Normalmente, si se pueden aplicar múltiples
+
o -
, las opciones se
fusionan. Cualquier opción precedida de un +
se
añade a las opciones en ese momento activas, y las opciones
precedidas de un -
se quitan de las activas en ese
momento.
Por ejemplo, sin ningún símbolo +
o
-
:
entoces solo Includes
tendrá efecto para el
directorio /web/docs/spec
. Sin embargo, si la segunda
directiva +
y otro -
:
entonces las opciones FollowSymLinks
e
Includes
estarán activas para el directorio
/web/docs/spec
.
El uso de -IncludesNOEXEC
o -Includes
desactiva server-side includes completamente independientemente
de la configuración anterior.
El comportamiento por defecto en ausencia de ninguna
configuración es All
.
Esta directiva selecciona qué usuarios autentificados pueden acceder a un recurso. La sintaxis a usar es:
Require user userid [userid]
...
Require group group-name [group-name]
...
Require valid-user
Los controles de acceso que se aplican de esta manera son
efectivos para todos los
métodos. Esto es lo que normalmente se
quiere. Si quiere aplicar controles de acceso solo a
métodos específicos, mientras se dejan otros
métodos sin protección, use la directiva
Toma 1 ó 2 parámetros. El primer parámetro
se refiere al límite flexible de recursos para todos los
procesos y el segundo parámetro especifica el límite
máximo de recursos. Cada uno de los parámetros puede ser
un número, ó max
para indicarle al servidor que
el límite debe fijarse al máximo permitido por la
configuración del sistema operativo. Para elevar el
límite máximo de recursos es necesario que se esté
ejecutando el servidor como ususario root
, o estar en
la fase inicial del arranque.
Esto se aplica a procesos nacidos de procesos hijo de Apache que están sirviendo peticiones, no a los procesos hijo de Apache propiamente dichos. Esto incluye a los scripts CGI y a los comandos de ejecución SSI, pero no a procesos nacidos del proceso padre Apache tales como ficheros de registro redireccionados (piped logs).
Los límites de consumo de tiempo de la CPU se expresan en segundos por proceso.
Toma 1 ó 2 parámetros. El primer parámetro
especifica el límite flexible de recursos para todos los
procesos y el segundo parámetro especifica el límite
máximo de recursos. Cada uno de los parámetros puede ser
un número, ó max
para indicarle al servidor que
el límite debe fijarse al máximo permitido por la
configuración del sistema operativo. Para elevar el
límite máximo de recursos es necesario que se esté
ejecutando el servidor como ususario root
, o estar en
la fase inicial del arranque.
Esto se aplica a procesos nacidos de procesos hijo de Apache que están sirviendo peticiones, no a los procesos hijo de Apache propiamente dichos. Esto incluye a los scripts CGI y a los comandos de ejecución SSI, pero no a procesos nacidos del proceso padre Apache tales como ficheros de registro redireccionados (piped logs).
Los límites de consumo de memoria se expresan en bytes por proceso.
Toma 1 ó 2 parámetros. El primer parámetro
especifica el límite flexible de recursos para todos los
procesos y el segundo parámetro especifica el límite
máximo de recursos. Cada uno de los parámetros puede ser
un número, ó max
para indicarle al servidor que
el límite debe fijarse al máximo permitido por la
configuración del sistema operativo. Para elevar el
límite máximo de recursos es necesario que se esté
ejecutando el servidor como usuario root
, o estar en
la fase inicial del arranque.
Esto se aplica a procesos nacidos de la división de procesos hijo de Apache que están sirviendo peticiones, no a los procesos hijo de Apache propiamente dichos. Esto incluye a los scripts CGI y a los comandos de ejecución SSI, pero no a procesos nacidos de la división del proceso padre Apache tales como ficheros de registro redireccionados (piped logs).
Limita el número de procesos por usuario.
Si los procesos CGI
no están siendo ejecutados por
identificadores de usuario diferentes del identificador de
usuario que está ejecutando el servidor web, esta directiva
limitará el número de procesos que el servidor puede
crear. Como resultado de esta situación, en el
error_log
aparecerán mensajes del tipo
cannot fork
.
Especifica la política de acceso a seguir cuando se usan tanto
All
o Any
. Esta directiva es solo útil
si se va restringir el acceso a un área concreta con un nombre de
usuario/contraseña y dirección del cliente. En este caso
el comportamiento por defecto (All
) es para requerir
que el cliente pase la restricción referente a la dirección
e introduzca un nombre de usuario y contraseña
válidos. Con la opción Any
el cliente podrá acceder
si cumple la restricción referente a la dirección o si introduce un
nombre de usuario y contraseñas válidos. Esto puede usarse para
restringir el acceso a una zona con una contraseña, pero permitir
a los clientes de algunas direcciones en concreto que accedan sin
tener que introducir contraseña alguna.
Por ejemplo, si quiere permitir que todo el mundo tenga acceso total a su intranet o a una parte de si sitio web, pero requerir que los visitantes de fuera de su intranet introduzcan una contraseña, puede usar una configuración similar a la siguiente:
A partir de la versión de Apache 2.0.51, puede limitarse
la aplicación de las directivas
Registry-Strict
está disponible en las versiones de
Apache 2.0 y posterioresEsta directiva se usa para controlar la manera que Apache
encuentra el intérprete usado para ejecutar scripts CGI. La
configuración por defecto es Script
. Esto hace que
Apache use el intérprete que aparece en la primera línea, la que
empieza por #!
) en el script. En los sistemas Win32
esta línea tiene un aspecto similar a:
o, si perl
está en el PATH
,
simplemente:
Usar ScriptInterpreterSource Registry
hará
que se busque en el Registro de Windows, en
HKEY_CLASSES_ROOT
con la extensión del fichero
de script (por ejemplo, .pl
) como clave de
búsqueda. El comando definido por la subclave del registro de
Windows Shell\ExecCGI\Command
o, si esta no existe,
por la subclave Shell\Open\Command
se usa para abrir
el script. Si no se encuentra ningún resutlado, Apache
recurre al comportamiento de la opción
Script
.
Tenga cuidado
cuando use ScriptInterpreterSource Registry
con
Registry
puede causar llamadas
indeseadas a programas que normalmente no se ejecutan. Por
ejemplo, el programa por defecto para abrir ficheros
.htm
en la mayoría de los sistemas Windows es
Microsoft Internet Explorer, entonces cualquier petición HTTP
de un fichero .htm
que exista dentro del script del
directorio hará que el ejecute de fondo el navegador en el
servidor. Con esto el servidor se bloqueará en más o
menos un minuto.
La opción Registry-Strict
que es nueva en
Apache 2.0 hace lo mismo que Registry
pero usa solo
la subclave Shell\ExecCGI\Command
. La clave
ExecCGI
no es de uso común. Debe ser configurada
manualmente en el registro de Windows y por tanto previene la
ejecución accidental de procesos en su sistema.
Sería conveniente tener una dirección de email solo para esto, por ejemplo
ya que los usuarios no siempre mencionan que están hablando del servidor!
La directiva simple.example.com
, pero el la maquina también tiene
el alias DNS www.example.com
y quiere que el servidor
web se identifique así, debe usar la siguiente directiva:
Si no especifa
Si está usando hosts
virtuales basados en el nombre, la directiva
Host:
para coincidir con ese host virtual.
Consulte la descripción de la directiva
The
La directiva conf/
y
logs/
. Las rutas que se especifican en otras
directivas (por ejemplo en
-d
de
httpd
La directiva
Esta directiva usa por defecto el valor Off
, que
suprime la generación del pie de página (y por tanto, es
compatible con el comportamiento de Apache 1.2 y las versiones
anteriores). Si usa el valor On
simplemte se
añade una línea con el número de versión y el
valor de EMail
crea las referencias adicionales
"mailto:" a lo especificado en la directiva
En las versiones 2.0.44 y posteriores, los detalles del número
de la versión del servidor son controlados por la directiva
Server
Esta directiva controla si el campo Server
de las
cabeceras de las respuestas que se envían de vuelta a los clientes
incluye una descripción del sistema operativo genérico del
servidor así como información sobre los modulos compilados en el
servidor.
ServerTokens Prod[uctOnly]
Server:
Apache
ServerTokens Major
Server:
Apache/2
ServerTokens Minor
Server:
Apache/2.0
ServerTokens Min[imal]
Server:
Apache/2.0.41
ServerTokens OS
Server: Apache/2.0.41
(Unix)
ServerTokens Full
(or not specified)Server: Apache/2.0.41
(Unix) PHP/4.2.2 MyMod/1.2
Esta configuración se aplica al servidor entero, y no puede ser activada o desactivada para unos hosts virtuales sí y para otros no.
En las versiones posteriores a la 2.0.44, esta directiva
también controla la información especificada en la directiva
Cuando se usa en un fichero .htaccess
o en una
sección .htaccess
en
ese directorio:
Otro ejemplo: si quiere que el servidor despliegue un resumen
de su estado cuando se llame a una URL de
http://servername/status
, puede poner lo siguiente en
el fichero httpd.conf
:
Puede evitar que se aplique lo especificado anteriormente en
una directiva None
.
La directiva
Si se especifica más de un filtro, deben separarse con puntos y comas en el orden en que deban procesar los contenidos.
La directiva
Por ejemplo, la siguiente configuración procesará todos los
archivos en el directorio /www/data/
con server-side
includes.
Si se especifica más de un filtro, deben separarse con puntos y comas en el orden en que deban procesar los contenidos.
La directiva
Lo planeado es hacer configurable por separado cada una de estas cosas. La cantidad de tiempo por defecto de 1200 usada antes de la versión 1.2, ha sido reducida hasta 300, que es en la mayor parte de las situaciones más de lo necesario. El tiempo usado por defecto no es menor porque puede que haya alguna parte del código en que el contador de tiempo no se pone a cero como debería cuando se envía un paquete.
En muchas ocasiones, Apache tiene que construir una URL
autoreferenciada -- esto es, una URL que se refiere de
vuelta al mismo servidor. Con UseCanonicalName On
Apache usará el nombre de host y puerto que estén especificados en
la directiva SERVER_NAME
y SERVER_PORT
en los
CGIs.
Con UseCanonicalName Off
Apache formará las
URLs autoreferenciadas usando el nombre de host y puerto
suministrados por el cliente. Si se ha suministrado esa
información (si no se ha suministrado, se usará el
nombre canónico, tal y como se ha definido arriba). Estos
valores son los mismos que se usan para implementar hosting virtual basado en
nombres, y están disponibles con los mismos clientes. Las
variables de CGI SERVER_NAME
y
SERVER_PORT
se construirán con la
información suministrada por los clientes.
Un ejemplo de donde esto puede ser útil es en un servidor de
una intranet, donde los usuarios se conectan a la máquina usando
nombres cortos como www
. Se dará cuenta de que si los
usuarios teclean un nombre corto, y una URL que es un directorio,
tal como http://www/splat
, sin una barra al
final entonces Apache los rediccionará a
http://www.domain.com/splat/
. Si tiene la
autenfificación activada, esto hará que el usuario se tenga que
autentificar dos veces (una para www
y otra para
www.domain.com
-- consulte las
preguntas más frecuentes sobre este asunto para obtener más
información). Pero si especifica el valor Off
en
la directiva http://www/splat/
.
Hay una tercera opción, UseCanonicalName DNS
, para
el caso en que se usa hosting virtual masivo basado en IP para
soportar clientes antiguos que no envían la cabecera
Host:
. Con esta opción Apache hace una busqueda de
DNS reversa en la dirección IP del servidor al que el cliente se
conectó para hacer funcionar las URLs autoreferenciadas.
Si los CGIs asumen los valores de SERVER_NAME
,
puede que no funcionen con esta opción. El cliente es
esencialmente libre de dar cualquier valor que quiera como nombre
de host. Pero si el CGI solo usa SERVER_NAME
para
constrir URLs autoreferenciadas, entonces no debe haber ningún
problema.
</VirtualHost>
se usan para incluir un grupo de
directivas que se aplicarán solo a un host virtual en
particular. Cualquier directiva que esté permitido usar en un
contexto virtual host puede usarse. Cuando el servidor recibe una
petición de un documento de un host virtual en concreto, usa las
directivas de configuración incluidas en la sección
*
, el cual puede usarse en
combinación con NameVirtualHost *
para que
equivalga a todas las direcciones IP; o_default_
, que se usa
solo con hosting virtual IP para detectar direcciones IP sin
emparejar.Las direcciones IPv6 deben especificarse entre corchetes porque el número de puerto opcional no podría determinarse si no se hace así. Un ejemplo de dirección IPv6 se mustra aquí abajo:
Cada host virtual se corresponde con una dirección IP
diferente, un número de puerto diferente o un nombre de host
diferente para el servidor, en el primer caso la máquina del
servidor debe estar configurada para aceptar paquetes IP para
múltiples direcciones. (Si la máquina no tiene múltiples infaces
de red, entonces esto puede conseguirse con el comando
ifconfig alias
-- si su sistema operativo lo
soporta).
El uso de
Cuando se usa hosting virtual basado en IP, puede
especificarse el nombre especial _default_
, en cuyo
caso, este host virtual equivaldrá a cualquier dirección IP que no
esté especificamente listada en otro host virtual. En ausencia de
un host virtual _default_
el server config
"principal", consistente en todas las definiciones fuera de una
sección VirtualHost, se usa cuando la IP no coincide con ninguna.
(Pero tenga en cuenta que cualquier dirección IP que equivalga a
la directiva _default_
virtual host. Consulte la documentación de
hosting virtual basado en
nombres para obtener más información.)
Puede especificar :port
para cambiar el puerto
de equivalencia. Si no especifica ninguno, entonces por defecto se
usa el mismo puerto de la directiva :*
para hacer
coincidir con todos los puertos en esa dirección. (Esto se
recomienda cuando se usa con _default_
.)
Consulte la documentación de consejos de seguridad para obtener más información sobre por qué pone en riesgo la seguridad si en el directorio donde almacena los archivos log tiene permisos de escritura alguien que no sea el usuario que inicia el servidor.