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}

    Para ver algunos ejemplos de como se usa esta directiva lea los siguientes artículos

    Convertir url a minúscula usando Apache HTTPD

    Truco del día: Cómo poner www delante de mis url en Apache HTTP

    Lecturas recomendadas

    Documentación del módulo mod_rewrite




    Dejar un comentario

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *