2008-08-25 14 views
22

Sé que hay muchas cosas positivas que mod-rewrite logra. Pero hay algo negativo? Obviamente si tienes reglas mal escritas vas a tener problemas. Pero, ¿qué pasa si tienes un sitio de alto volumen y estás constantemente usando mod-rewrite, va a tener un impacto significativo en el rendimiento? Hice una búsqueda rápida de algunos puntos de referencia en Google y no encontré mucho.¿Algún impacto negativo al usar Mod-Rewrite?

Respuesta

34

He usado mod_rewrite en sitios que obtienen millones/hits/mes sin ningún problema de rendimiento significativo. Debes saber qué reescrituras se aplican primero según tus reglas.

El uso de mod_rewrite es más probable que el análisis de la URL con su idioma actual.

Si realmente está preocupado por el rendimiento, no use los archivos .htaccess, que son lentos. Coloque todas las reglas de reescritura en su configuración de Apache, que solo se lee una vez al inicio. Los archivos .htaccess se vuelven a analizar en cada solicitud, junto con cada.htaccess archivo en las carpetas principales.

+26

Buena respuesta, pero debo señalar que * los archivos * enable * .htaccess es el problema, no tanto el uso de ellos. Si no los deshabilita por completo, aún tendrá el hit de estadísticas para cada segmento de ruta, incluso si no tiene un solo archivo .htaccess en ninguna parte. –

+3

Deshabilita .htaccess usando 'AllowOverride None'. – NateS

3

Si le preocupa el rendimiento de apache, una cosa a considerar si tiene muchas reglas de reescritura es utilizar el indicador "omitir". Es una forma de saltarse la coincidencia en las reglas. Por lo tanto, cualquier gasto adicional que se haya gastado en la coincidencia se guarda.

Sin embargo, era un proyecto que utilizaba mucho el indicador "omitir", y hacía que el mantenimiento fuera doloroso, ya que depende del orden en que se escriben las cosas en el archivo.

+3

Puede ser mejor utilizar la bandera [L] (que indica que las reglas * todas * se deben omitir si la actual coincide) en algunas circunstancias, ¿no? –

+0

Y marca "END" si para evitar .htaccess en subdirectorios/nueva localización – 18C

7

Para repetir lo que dice Ryan anteriormente, las reglas en un .htaccess realmente pueden dañar los tiempos de carga en un sitio ocupado en comparación con tener las reglas en su archivo de configuración. Inicialmente probamos esto (~ 60 millones de páginas/mes) pero no duró mucho tiempo hasta que nuestros servidores comenzaron a fumar :)

La desventaja obvia de tener las reglas en su configuración es que tiene que volver a cargar la configuración cada vez que modifique su reglas.

La última bandera ("L") es útil para acelerar la ejecución de sus reglas, una vez que las reglas de acceso más frecuente están hacia la parte superior y se evalúan primero. Puede hacer que el mantenimiento sea mucho más complicado si tienes un conjunto largo de reglas: una mañana desperdicié un par de horas muy frustrantes mientras editaba a mitad de mi lista de reglas y tenía una arriba que estaba atrapando más de ¡destinado a!

Tuvimos dificultades para encontrar puntos de referencia relevantes también, y terminamos resolviendo nuestro propio conjunto interno de pruebas. Una vez que obtuvimos nuestras reglas resueltas, correctamente ordenadas y en nuestro conf Apache, no encontramos mucho impacto negativo en el rendimiento.

Cuestiones relacionadas