En este post trataremos sobre las flags que existen para la directiva RewiteRule. Una o varias flag puede variar elcomportamiento de un RewriteRule.
RewriteRule pattern target [Flag1,Flag2,Flag3]
Las Flags que alteran los metadatos asociados con la solicitud (T =, H = E =) no tienen ningún efecto en el contexto de cada directorio y htaccess, cuando un cambio (que no sea ‘-‘) se lleva a cabo durante la misma ronda de procesamiento de reescritura.
Ahora pasamos a explicar las diferentes tipos de flags disponibles:
– B(escape Backreferences):
Esta flag instruye a rewriteRule a saltarse caracteres no alfanuméricos antes de aplicar la transformación
– C (chain):
La flag [C] indica que el RewriteRule está encadenado a la siguiente regla. Es decir, si la regla coincide, entonces se procesa como movimientos habituales y de control a la siguiente regla. Sin embargo, si no coincide, entonces la siguiente regla, ya las demás normas que están encadenados juntos, se omiten.
– CO|cookie
Permite establecer una cookie cuando un RewriteRule en particular coincide.
Debe declarar un nombre, un valor y un dominio de la cookie que desea.
- Domain: El dominio para el que desea la cookie sea válida. Esto puede ser un nombre de host, por ejemplo www.example.com, o puede ser un dominio, como. Example.com
Atributos opcionales:
- Lifetime: El tiempo durante el que se mantendrá la cookie, en minutos.Un valor de 0 indica que la cookie se mantendrá sólo para la sesión actual del navegador. Este es el valor por defecto si no se especifica ninguno.
- Path: La ruta en la página web actual, para lo cual la cookie es válida
- Secure: Solo se permitirá la cookie a través de conexiones seguras. Los valores que puede tener son secure, true o 1.
- Httponly: la cookie es inaccesible para el código JavaScript en los navegadores que soporten esta característica. Los valores que puede tener son secure, true o 1.
– DPI(discardpath)
Esta flag hace que el PATH_INFO sea descartado quando se reescriba la URL. Esta bandera está disponible en la versión 2.2.12 y posteriores.
– E(env)
Con la flag [E] o [env], se puede establecer el valor de una variable de entorno. Tenga en cuenta que algunas variables de entorno se pueden establecer después de ejecutar la regla.
– END
Esta Flag termina no sólo la actual ronda de procesamiento de reescritura (como [L]), sino también impide cualquier proceso de reescritura posterior se produzca en (htaccess) contexto por directorio.
Esto no se aplica a las nuevas solicitudes que resulten de re direccionamientos externos.
– F (forbidden)
El uso de la flag [F] hace que el servidor devuelve un código de estado 403 Forbidden al cliente.
– G(gone)
La flag fuerza al servidor a devolver un error 410. Esto indica que una página ha pasado de estar disponible a no estar disponible.
– H(handler)
Fuerza la petición a ser utilizada con el control especificado. Por ejemplo, se podría usar esto para obligar a todos los archivos sin extensión a ser analizado como un archivo php.
– L(last)
En la mayoría de los contextos, esto significa que si la regla coincide, no se procesarán más reglas.
– N(next)
Hace que el conjunto de reglas para volver a empezar de nuevo desde la parte superior, utilizando el resultado del conjunto de reglas hasta ahora como punto de partida. Utilice con extrema precaución, ya que puede resultar en bucle.
– NC(nocase)
Esta flag indica que las mayúsculas y las minúsculas no importan cuando la URL coincida.
– NE(noescape)
De forma predeterminada, los caracteres especiales, como & y ?, Por ejemplo, se convertirán en su equivalente hexadecimal. Usando la flag [NE] impide que eso suceda.
– NS(nosubreq)
El uso de la flag [NS] previene la regla de ser utilizado en subpeticiones. Por ejemplo, una página que se incluye el uso de un SSI (Server Side Include) es una subpeticiones, y es posible que desee evitar reescrituras que suceden en esos subpeticiones.
– P(proxy)
Hace que la solicitud sea manejada por mod_proxy.
– QSA(qsappend)
Cuando la sustitución de la URL contiene una cadena de consulta, el comportamiento predeterminado de RewriteRule es descartar la cadena de consulta existente y reemplazarla con la generada. Usando esta flag hace que las cadenas de consulta se combinarán.
– QSA(qsappend)
Cuando la URI solicitada contiene una cadena de consulta y el URI de destino no es así, el comportamiento predeterminado de RewriteRule es copiar esa cadena de consulta a la URI de destino. Usando esta flag hace que la cadena de consulta sea descartada.
– R(redirect)
Causa una redirección HTTP que se publicará en el navegador. Si se especifica una dirección URL completa y luego una redirección será reenviado a esa ubicación.
– S(skip)
Se utiliza para omitir las reglas que usted no desea ejecutar.
– T(type)
Establece el tipo MIME con la que se enviará la respuesta resultante. Esto tiene el mismo efecto que la directiva AddType.