
¿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.confsituado 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.confarchivo 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.