2009-03-25 9 views
7

Pregunta simple. ¿Existe un límite en cuanto a la cantidad de RewriteRules que puedo tener en mi .htaccess o puedo poner un montón de ellas allí sin que Apache se vuelva loco conmigo?¿Cuántas RewriteRules puede tener en .htaccess sin problemas?

¿Existe un límite relativo en el que el servidor simplemente se sumerge porque hay muchas reglas para iterar?

Gracias!

Respuesta

3

Si sus RewriteRules incluyen varias es un archivo existente (-F) o es url existente (-U) banderas, ya que esas son subpeticiones, podría ver un golpe de rendimiento. Fuera de esos, no he experimentado una situación en la que varias RewriteRules comiencen a afectar negativamente el rendimiento y mi implementación actual tenga una buena cantidad.

Puede limitar la necesidad de iterar a través de todas las RewriteRules simplemente ordenándolas de tal manera que las comprobaciones más costosas se realicen más adelante en el proceso (si es posible), de esa manera los condicionales anteriores pueden cortocircuitarse de su lógica de reescritura y le ahorrará el cálculo de las reglas más costosas más adelante en el proceso.

6

Tienes que saber que el .htaccess configuration files are being processed on every request.

Así que si tiene un archivo .htaccess con 1000 reglas, el peor caso es que cada 1000 reglas se prueban cada vez que una solicitud llega a este directorio.

Por lo tanto, debe usar una estructura donde una regla coincida con una solicitud lo antes posible. Las reglas que manejan solicitudes más frecuentes deben aparecer antes que aquellas que son menos frecuentes y determinan el procesamiento (consulte L flag). Lea sobre el ruleset processing para saber cómo se están procesando las reglas (vea también RewriteLogLevel direcitve).

Otro factor son las expresiones regulares: es mejor utilizar expresiones regulares "simples" y eficientes que las ambiguas o complejas. Debería analizar cómo se interpretan y procesan las expresiones regulares para evitar las costosas y sacar el máximo provecho de ellas.

Cuestiones relacionadas