Módulo Apache mod_rewrite: Directiva RewriteCond

La directiva RewriteCond define una o más condiciones bajo las cuales va a ejecutarse una reescritura de url (RewriteRule), una o más directivas RewriteCond pueden preceder a RewriteRule, la reescritura de la url se llevará a cabo si se cumplen las condiciones especificadas en ambas directivas, esta directiva tiene el siguiente contexto: configuracion general (server config), directorios (Directory), hosts virtuales (VirtualHost) y .htacces.

Sintaxis

RewriteCond Cadena-a-comparar Patron-comparativo

Donde:

  • Patrón-comparativo es una expresión regular de tipo PERL (PCRE), con algunas adiciones
    • Se puede anteponer el símbolo ! para negar el patrón entonces el RewriteCond se cumpliría siempre que Cadena-de-prueba sea distinto de Patron-comparativo
    • -d: Verifica si Cadena-a-comparar es una directorio
    • -f: Verifica si Cadena-a-comparar es una fichero
    • -s: Verifica si Cadena-a-comparar es un fichero no vacío (size > 0)
    • -l: Verifica si Cadena-a-comparar es un enlace simbólico
    • -x: Verifica si Cadena-a-comparar es un enlace ejecutable
    • Otras
  • Cadena-a-comparar puede ser además de texto plano,
    • Referencias (backreference) RewriteRule de la forma $N (0 <= N <= 9), las cuales permiten acceder a las diferentes partes agrupadas en en una regla RewriteRule.
    • Referencias RewriteCond de la forma %N (0 <= N <= 9), las cuales permiten acceder a las partes agrupadas
    • Expansiones RewriteMap
    • Variables del Servidor: HTTP_HOST, SERVER_NAME, DOCUMENT_ROOT, REQUEST_URI, QUERY_STRING, otras. Estas variables se especifican de la forma %{VARIABLE}

Deja un comentario

Fill in your details below or click an icon to log in:

Logo de WordPress.com

You are commenting using your WordPress.com account. Log Out / Cambiar )

Twitter picture

You are commenting using your Twitter account. Log Out / Cambiar )

Facebook photo

You are commenting using your Facebook account. Log Out / Cambiar )

Connecting to %s

Seguir

Get every new post delivered to your Inbox.