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
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:
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
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 ...
Pero debido a las muchas similitudes entre el servidor X86 y el escritorio, existen muchas similitud
El rápido desarrollo de la red empresarial ha hecho que los servidores de soporte
Las cosas utilizadas por los usuarios en la red pueden existir en var
Prohibir IIS para almacenar en caché archivos estáticos (png, js, html, etc.) Fon
Servidor de administración: seis razones comunes para que el servidor se bloquee
Golpe 123: Cómo exprimir la "cada gota de aceite" del servidor
¿Cómo lidiar con la recuperación de desastres de almacenamiento de nube de centro de datos?
Permisos de la carpeta de configuración de Windows 2003
Mantenimiento y desmontaje del sistema de hardware del servidor
Añadir tipos de archivos descargables en IIS6
Resolver phpMyAdmin no permite el método de configuración de inicio de sesión con contraseña vacía
Cinco habilidades de aplicación: novatos para mantener la seguridad del servidor
Reglas de Nginx Rewrite escritas
Tecnología de matriz de discos RAID y principio de recuperación de datos
Apache abre Gzip y expira para mejorar la velocidad de carga de la página
Modificar los parámetros para resolver La cola de la agrupación FastCGI está llena de error
Accesos directos del escritorio virtual del conmutador Win10
Número de serie de Office2007 (número de serie de clave absolutamente disponible)
Algunos pasos para volver a la barra de idioma desaparecieron bajo Windows7
Win7 sistema de inicio del sistema le pide a perder d3dcompiler_43.dll cómo hacerlo?
Win8 abrir 802.1x habilidades de autenticación
Cómo configurar una conexión VPN
Win10 Universal Weibo puede mostrar la cola: desde Windows10, Windows10 Mobile