¿Algún impacto negativo al usar Mod-Rewrite?


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 lo que si usted tiene un sitio de alto volumen y su uso constante de mod-reescritura, 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.

Author: Willem Van Onsem, 2008-08-25

3 answers

He utilizado mod_rewrite en sitios que obtienen millones/visitas/mes sin ningún problema de rendimiento significativo. Tienes que saber qué reescrituras se aplican primero dependiendo de tus reglas.

Usar mod_rewrite es probablemente más rápido que analizar la URL con su idioma actual.

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

 37
Author: Ryan Doherty,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-10-08 01:09:22

Para hacer eco de lo que Ryan dice anteriormente, las reglas en un .htaccess realmente pueden dañar sus 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 hasta que nuestros servidores comenzaron a fumar:)

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

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

También tuvimos dificultades para encontrar puntos de referencia relevantes, y terminamos trabajando en nuestro propio conjunto interno de pruebas. Una vez que tengamos nuestras reglas ordenadas, ordenadas correctamente y en nuestro Apache conf, no encontramos mucho de un impacto negativo en el rendimiento.

 7
Author: ConroyP,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-10-08 01:09:42

Si está preocupado por el rendimiento de Apache, una cosa a considerar si tiene muchas reglas de reescritura es usar la bandera "skip". Es una forma de omitir la coincidencia en las reglas. Por lo tanto, cualquier gasto que se hubiera gastado en emparejar se guarda.

Tenga cuidado, sin embargo, yo estaba en un proyecto que utiliza la bandera "skip" mucho, y que hizo el mantenimiento doloroso, ya que depende del orden en el que las cosas están escritas en el archivo.

 3
Author: bpapa,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-08-25 18:32:42