Sei sulla pagina 1di 2

Guia bsica mod_rewrite Sintaxis de expresiones regulares La regexp syntax tiene reglas bsicas que son sencillas de entender,

vamos a ello: ^ Comienzo de cadena. $ Fin de cadena. . Cualquier caracter simple. (a|b) Opcional entre a y b. () Seccin de grupo. [abc] Item en rango (a, b c). [^abc] excluye los caracteres dentro del parntesis, de los resultados (ni a, ni b, ni c). a? Cero 1 "a". a* Cero o ms "a". a+ Una o ms "a". a{3} Exactamente 3 "a". a{3,} 3 ms "a". a{3,6} De 3 a 6 "a". !(patron) Aplicar regla cuando la URL no coincida con el patrn. \ Escapa un caracter especial. [a-z] Solamente letras. [0-9] Solamente nmeros. (.*) Cualquier expresin. ? Declara como opcional el carcter anterior. ! Declara negacin. Ejemplo: "!-d" indica no es directorio. - instruccin not to. Ninguno de lo que le precede. + declara "uno o ms" del carcter que le precede. | declara "or". Ejemplo (x|y) resulta "x" o "y". \ para leer caracteres especiales. Ejemplo \. indica literalmente un punto. /* indica cero o ms "/". .* indica cero o ms caracteres arbitrarios. ^$ indica un "empty string". ^.*$ pauta estndar para obtener todo. [^/.] define, un carcter que no es "/" ni ".". [^/.]+ define, ningn nmero de caracter que tenga "/" o ".". ^domain.* define un string que comienza con el trmino "domain" y contina con cualquier nmero de caracteres. ^domain\.com$ define exactamente domain.com. Patrones de condicin usados en RewriteCond < condicin.- Menor que condicin. > condicin.- Mayor que condicin. = condicin.- Igual a condicin. -d Es directorio. -f Es archivo regular. -s Es archivo con tamao mayor de cero. -l Es enlace simblico. -F Comprueba si el archivo existe y es accesible va URL. -U Comprueba si la URL existe y es accesible.

Guia bsica mod_rewrite Flags [F] Forbidden: para forzar un acceso denegado. 403 Forbidden. [L] Last rule: para indicar que es la ltima regla que debe aplicarse [N] Next: indica continuacin hasta que las directivas sean logradas [C] Chain: Instruye al servidor para encadenar la regla actual con la regla previa. [R] Redirect: indica redireccin. [NC] No Case: no debe distinguirse entre maysculas y minsculas. [OR] Or: la expresin actual debe interpretase como una alternativa a la anterior. [NE] No Escape: para no escapar los caracteres raros por urlcode(), por ejemplo si queremos que un espacio siga siendo espacio y no %20%. [QSA] Append Query String: permite agregar un query string al final de la expresin URL amigable [T=mime-type] Fuerza un mime-type especfico "application/x-httpd-cgi" o lo que sea. Variables de servidor ms usadas en RewriteCond %{HTTP_USER_AGENT} Cadena con informacin del cliente o bot. %{HTTP_REFERER} Direccin URL de la pgina previa. %{REMOTE_ADDR} Direccin IP desde donde el cliente ha solicitado la pgina. %{REMOTE_HOST} El nombre del host desde el cual est viendo la pgina actual el usuario. %{REMOTE_USER} El usuario autenticado. %{REQUEST_METHOD} Mtodo de peticin empleado para acceder a la pgina, 'GET', 'POST'. %{SCRIPT_FILENAME} La ruta absoluta del sistema del script ejecutndose. %{QUERY_STRING} Si existe, la cadena de la consulta de la peticin de la pgina. %{REQUEST_URI} La URI que se emple para acceder a la pgina. Partiendo de la raiz sitio web. %{REQUEST_FILENAME} Nombre del archivo solicitado en la peticin. REWRITERULE RewriteRule url-patron url-destino [flag] url-patrn es una expresin regular, si se cumple continua la ejecucin de la regla. url-destino direccin hacia donde dirigir el navegador caso de cumplirse la regla. flag condiciona la ejecucin de la regla.

REWRITECOND RewriteCond es similar a los bucles condicionales if de cualquier lenguaje de programacin: si se cumple la condicin especificada en RewriteCond, entonces se ejecutar la siguiente instruccin RewriteRule. RewriteCond %{VARIABLE_SERVIDOR} condicin o patrn

Potrebbero piacerti anche