reglas mod_rewrite en la configuración httpd

reglas mod_rewrite en la configuración httpd

¿Cómo y dónde coloco mis reglas mod_rewrite en la configuración httpd para que solo se analicen una vez al inicio en lugar de cada vez que se lee un archivo en mi directorio web?

Información adicional:

  • asumiendo que todos los scripts funcionan en el archivo .htaccess
  • RHEL4 ejecutando Apache 2.0.52
  • múltiples subdominios/dominios en la máquina

Gracias

Respuesta1

No estoy seguro de haber entendido la pregunta, pero si la pregunta es "Actualmente tengo una regla de reescritura en un archivo .htaccess y quiero colocarla en toda la configuración de Apache". debe agregar una <Directory /path/to/directory/where/htaccess/is>directiva en la configuración de Apache y colocar el contenido del archivo .htaccess en ella.

Si .htaccess está en /srv/web/site1/folder1/, agregue lo siguiente en el archivo de configuración de Apache

<Directory /srv/web/site1/folder1>
Paste content of .htaccess here
</Directory>

Respuesta2

Todas las respuestas están aquí, pero no todas están agrupadas.

Como dice memnoch_proxy:

"Las reglas modificadas en los archivos .htaccess se leen en cada solicitud. /etc/httpd/httpd.conf y /etc/httpd/conf.d/* no lo son. Activa nuevos cambios en esos archivos usando el servicio httpd reload que envía un SIGUSR1 a los trabajadores para reiniciar con gracia".

Entonces me parece que estás usando archivos .htaccess para definir tus reglas de reescritura que se aplican a tu sitio y/o estructura de carpetas.

Para evitar que las reglas se vuelvan a leer y reinterpretar cada vez que se accede al directorio o página, las reglas deben colocarse dentro de los archivos de configuración centrales de Apache para su sitio web.

La ubicación de estas reglas varía según cómo el administrador de sistemas haya diseñado el sistema; en un entorno Red Hat Enterprise Linux, le recomendaría que los coloque en un archivo llamado

reescribir-reglas.conf
situado en
/etc/httpd/conf.d

En un sistema con una compilación predeterminada de Apache, es posible que tengas que colocarlos al final del

httpd.conf
archivo ubicado en
/usr/local/apache/conf

Respuesta3

En su archivo httpd.conf, agregue algo como "incluir modrewrite.conf". Luego, en el archivo moderewrite.conf, agregue las reglas de reescritura.

También asegúrese de haber incluido el módulo mod_rewrite si no está compilado.

Respuesta4

Las RewriteRules se procesan cada vez que se accede a un recurso en su servidor al que se relacionan las reglas. Independientemente de dónde se coloquen las reglas, se analizarán siempre.

Sin embargo, si quiere decir que no le gusta la sobrecarga de .htaccess que se lee desde el disco en cada solicitud de recurso, entonces la respuesta de Radius es lo que desea, con la instrucción adicional obvia de eliminar el archivo .htaccess después de colocar su contenido. en el archivo de configuración principal de Apache.

información relacionada