Las directivas facilitadas por este módulo permiten la manipulación y control de URLs según llegan las peticiones al servidor. Las directivas
Las directivas
Cuando se usan las directivas
Aliases y Redirects que se dan en diferentes contextos se procesan como otras directivas según las reglas de fusión estándar. Pero cuando se dan múltiples
Aliases o Redirects en el mismo contexto (por ejemplo, en la misma sección
En primer lugar, todos los Redirect se procesan antes que los Aliases, y por tanto una solicitud que coincida con un
Por esta razón, cuando dos o más de estas directivas se aplican a la misma sub-ruta, debe definir la ruta más específica primero para que todas las directivas tengan efecto. Por ejemplo, la siguiente configuración funcionará como se espera:
Pero si estas dos directivas estuvieran en orden inverso, el
/foo
siempre se aplicaría antes que el
/foo/bar
, así que se obviaría la última directiva.
Cuando las directivas
La directiva
Una petición para http://example.com/image/foo.gif
haría que el servidor respondiera con el fichero
/ftp/pub/image/foo.gif
. Solo se comparan segmentos de ruta completos, así que el alias de más arriba no valdría para la petición
http://example.com/imagefoo.gif
. Para ejemplos más complejos de expresiones regulares, vea la directiva
Tenga en cuenta que si incluye una / final en el URL-path entonces el servidor requerirá una / final para poder extender el alias. Es decir, si usa
entonces la URL /icons
no coincidirá con el alias, porque no tiene la / final. De la misma manera, si omite la barra en el
URL-path también debe omitirla del
file-path.
Considere que seguramente tenga que especificar secciones de
En particular, si está creando un Alias
a un directorio fuera de su
Cualquier número de barras en el parámetro URL-path coincide con el mismo número de barras en el URL-path solicitado.
Si la directiva
Esta sintáxis está disponible en Apache 2.4.19 y versiones posteriores.
Esta directiva es equivalente a
/icons
, uno podría usar:
Puede usar toda la capacidad que le permiten las
Una sutil diferencia entre
En otras palabras, cambiar
^
al comienzo de la expresión regular, añadir un (.*)$
al final y añadir
$1
al final del reemplazo.
Por ejemplo, supongamos que quiere reemplazar esto con AliasMatch:
Esto no es equivalente - ¡no haga esto! Esto enviará todas las peticiones que tengan /image/ en cualquier parte de la petición y la pondrá en /ftp/pub/image/:
Esto es lo que necesita para que tenga el mismo efecto:
Por supuesto, no hay ningún motivo para usar
Si se usan multiples barras iniciales en la URL solicitada, el servidor las descarta antes de que las directivas de este módulo las compare con el URL-path solicitado.
La directiva
El antiguo URL-path es una ruta (%-decodificada) que comienza con una barra. No se permite una ruta relativa.
La nueva URL puede ser una URL absoluta que comienza con esquema y nombre de host, or un URL-path que comienza con una barra (/). En este último caso se añadirán el esquema y nombre de host del servidor actual si tiene
Entonces cualquier petición que comience con URL-path devolverá una solicitud de redirección al cliente hacia la ubicación de la URL de destino. Información adicional de la ruta pasado el URL-path que coincide se añadirá al final de la URL de destino.
Si el cliente solicita http://example.com/service/foo.txt
, se le indicará que acceda a
http://foo2.example.com/service/foo.txt
en su lugar. Esto incluye solicitudes con parámetros
GET
, tales como
http://example.com/service/foo.pl?q=23&a=42
,que será
redirigido a
http://foo2.example.com/service/foo.pl?q=23&a=42
.
Tenga en cuenta que los POST
serán descartados.
Solo se comparan segmentos completos de ruta, así que el ejemplo de más arriba no coincidiría con una petición a
http://example.com/servicefoo.txt
. Para comparaciones más complejas usando la
sintáxis de expresión, omita el argumento de URL-path tal y como se indica más abajo. Alternativamente, para coincidencias usando expresiones regulares, vea la directiva
Las directivas
Si no se indica un parámetro status, la redirección será "temporal" (estado HTTP 302). Esto le indica al cliente que el recurso se ha movido temporalmente. El parámetro status se puede usar para devolver otros códigos de estado HTTP:
Se pueden devolver otros códigos de estado indicando el código numérico del estado en el valor de status. Si el estado está entre 300 y 399, el parámetro URL debe estar presente. Si el estado
no está entre 300 and 399, el parámetro URL debe ser omitido. El estado debe ser un código de estado válido HTTP, conocido por el Servidor Apache HTTP (vea la función send_error_response
en http_protocol.c).
Si se usa la directiva
Esta sintáxis está disponible en Apache 2.4.19 y versiones posteriores.
Esta directiva es equivalente a
Las consideraciones relacionadas con las diferencias entre
Esta directiva le hace saber al cliente que el Redirect es solo temporal (estado 302). Exactamente equivalente a
Redirect temp
.
Esta directiva hace saber al cliente que el Redirect es permanente
(estado 301). Exactamente equivalente a
Redirect permanent
.
La directiva
Una petición para http://example.com/cgi-bin/foo
haría que el servidor ejecute el script /web/cgi-bin/foo
. Esta configuración es esencialmente equivalente a:
También puede usarse
En este escenario todos los ficheros solicitados en
/cgi-bin/
serán gestionados por el fichero que usted ha configurado, esto permite que use su propio handler personalizado. Puede que quiera usar esto como un wrapper de CGI y así pueda añadir contenido, o alguna otra acción a medida.
Si se usa la directiva
Esta sintaxis está disponible en Apache 2.4.19 y versiones posteriores.
Esta directiva es equivalente a
/cgi-bin
, uno podría usar:
En cuanto a AliasMatch, puede usar toda la capacidad que le permiten las
Las consideraciones relacionadas con las diferencias entre