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