Las instrucciones detalladas RewriteCond Apache en

  

En la aplicación mod_rewrite de Apache, a menudo necesitamos para definir reglas de reescritura para la instrucción del fichero .htaccess RewriteCond define las condiciones y reescribir las normas en vigor, es decir, antes de que pueda ser una directiva RewriteRule Una o más instrucciones de RewriteCond. La regla de reescritura después de la condición solo funciona si el URI actual coincide con el patrón y cumple las condiciones aquí. No es difícil encontrar que la directiva RewriteCond sea muy similar a la expresión condicional de la sentencia if en PHP. Definido

RewriteCond Directiva ocurre Descripción Condiciones
reescritura definido Sintaxis
RewriteCond TestString
CondPattern
[< em> banderas
] alcance
configuración del servidor, host virtual, directorio, .htaccess anulaciones
FileInfo estado
extensión (E) módulo
mod_rewrite

Como se puede ver, define la condición de instrucciones RewriteCond reescribir normas en vigor, lo que significa que toda la declaración RewriteCond: una cadena de prueba (la TestString) modo, si se cumplen las condiciones (la CondPattern), se lleva a cabo subsiguiente RewriteRule. TestString

instrucción RewriteCond

TestString es un texto plano (test) ,, pero también puede ser una cadena que contiene los siguientes componentes extensibles:

1, RewriteRule inversa de referencia, la referencia es:

$ N (0 < = N < = 9) se refieren al componente de paquete actual (con la instrucción RewriteRule varios) la RewriteCond con coincidencia de patrones (sub-patrones regulares expresión ).

2, backreferences RewriteCond es:

% N (1 < = N < = 9) de paquetes de referencia de componente condiciones actuales varias condiciones RewriteCond última se correspondía con el (regular Subpatrón en la expresión).

3, las variables del servidor, la referencia es:

{%} NAME_OF_VARIABLE

NAME_OF_VARIABLE puede ser una de las cadenas en la tabla a continuación:
encabezado HTTP
solicitud de conexión

HTTP_USER_AGENTHTTP_REFERER

HTTP_COOKIE

HTTP_FORWARDED

HTTP_HOST

HTTP_PROXY_CONNECTION

HTTP_ACCEPT

REMOTE_ADDRREMOTE_HOST

REMOTE_PORT

REMOTE_USER

REMOTE_IDENT

REQUEST_METHOD

SCRIPT_FILENAME

PATH_INFO

QUERY_STRING

AUTH_TYPE
propio servidor
fecha y hora
otros en

DOCUMENT_ROOT

SERVER_ADMIN

SERVER_NAME

SERVER_ADDR

SERVER_PORT

SERVER_PROTOCOL

SERVER_SOFTWARE

T IME_YEAR

TIME_MON

TIME_DAY

TIME_HOUR

TIME_MIN

TIME_SEC

TIME_WDAY

TIEMPO

api_version

THE_REQUEST

REQUEST_URI

REQUEST_FILENAME

IS_SUBREQ

HTTPS

estas variables corresponden a la cabecera de nombre similar-MIME HTTP, servidor Apache variable de C, Unix campo tm sistemas struct, la mayoría de los cuales se describen en los manuales u otra especificación CGI. condPattern

instrucción RewriteCond

modo CondPattern es la condición, es decir, se aplica una corriente a un ejemplo de un TestString expresión regular. TestString se evaluará primero y luego se comparará con CondPattern.

se puede especificar en el comienzo de su uso no coincide con el CondPattern cadena '' (signo de exclamación).

CondPatterns es una expresión regular compatible con perl con algunas variantes especiales. Además del uso estándar de la expresión regular, hay la siguiente varias adiciones Uso:

1, '< CondPattern' (lexicográficamente menor que) la CondPattern como una cadena simple en comparación con TestString lexicográficamente. Es cierto si TestString es menor que CondPattern.

2, '> CondPattern' (lexicográficamente mayor que) el CondPattern como una cadena simple en comparación con TestString lexicográficamente. Es cierto si TestString es mayor que CondPattern.

3, '= CondPattern' (lexicográficamente iguales) se CondPattern como una cadena simple en comparación con TestString lexicográficamente. Verdadero si TestString es igual a CondPattern (las dos cadenas son exactamente iguales de carácter por carácter). Si CondPattern es " " (dos comillas dobles), TestString se comparará con la cadena vacía.

4, '-d' (directorio) trata a TestString como una ruta de acceso y comprueba si es un directorio existente.

5, - existe 'f' (archivo regular) se TestString como una ruta y las pruebas si se trata de un archivo normal.

6, '- s' (archivo regular no vacío) se TestString como una ruta y las pruebas si es una, tamaño de archivo convencional existente mayor que cero.

7, '- l' (enlace simbólico) se TestString como una ruta y las pruebas si se trata de una conexión existente símbolo.

8, '- X' (ejecutable) se TestString como una ruta y comprueba si se trata de un existentes, tener permisos de archivos ejecutables. Este permiso es detectado por el sistema operativo.

9, '- F' (hay una solicitud de la sub-archivo) para comprobar si un archivo TestString válida, y puede ser configurado de control de acceso al servidor de acceso actual. Utiliza un cheque subpetición interna, ya que disminuye el rendimiento de su servidor, así que por favor tenga cuidado

10 ,! '- T' (petición sub presencia de una URL) TestString comprobar si una URL válida Y se puede acceder a él bajo la configuración de control de acceso actual del servidor. Utiliza un cheque subpetición interna, ya que disminuye el rendimiento de su servidor, así que por favor tenga cuidado

Nota :! ( '!') Todas estas pruebas pueden ser prefijado con un signo de exclamación para lograr las condiciones anti-prueba Gire, y también puede agregar una bandera especial [banderas] después de CondPattern como el tercer parámetro de la directiva RewriteCond.

lista banderas

banderas es una coma separada por la siguiente etiqueta RewriteCond instrucciones:

1, 'nocase | NC '(ignorado): permite ignorar el caso de prueba, TestString la extendida y CondPattern' A-Z 'y' a-z 'hay diferencia. Esta etiqueta solo se usa para las comparaciones entre TestString y CondPattern, pero no para el sistema de archivos y las solicitudes secundarias.

2, 'ornext | OR '(o siguiente condición): combina las condiciones de varias reglas en OR, no el AND implícito.

RewriteCond ejemplo

RewriteCond% {} ^ REMOTE_HOST host1. * [OR]

RewriteCond% {} ^ REMOTE_HOST host2. * [OR]

RewriteCond% {} ^ REMOTE_HOST host3. *

... RewriteRule conjunto de reglas para los tres anfitriones ...

Copyright © Conocimiento de Windows All Rights Reserved