
Quiero establecer un par de Location
etiquetas en mi configuración de Apache. Por ejemplo: /image
, /file
y /audio
para pasarlo a localhost:port/path
. Ahora mismo estoy usando esto para /image
:
<Location /image>
RewriteEngine on
Options +MultiViews +FollowSymLinks
AllowOverride All
ProxyPreserveHost On
ProxyPass "http://localhost:PORT/image"
ProxyPassReverse "http://localhost:PORT/image"
</Location>
¿Tengo que escribir este fragmento de código para cada parámetro? ¿O hay algún atajo para ello?
¡Gracias!
Respuesta1
<Location /image> RewriteEngine on Options +MultiViews +FollowSymLinks AllowOverride All ProxyPreserveHost On ProxyPass "http://localhost:PORT/image" ProxyPassReverse "http://localhost:PORT/image" </Location>
¿Tengo que escribir este fragmento de código para cada parámetro?
No. La RewriteEngine
directiva no hace nada allí y ni las directivas Options
ni las AllowOverride
directivas tienen ningún sentido cuando no se asignan recursos en el sistema de archivos local. Esas opciones están controladas y deben ser configuradas por el servidor web "remoto" al que está reenviando las solicitudes con la ProxyPass
directiva.
Dado que esas directivas son inútiles, tampoco necesita el corchete de Ubicación para configurarlas y puede usar el comando en líneaProxyPass
sintaxis que se recomienda de todos modos.
Eso reduce su sintaxis a solo las líneas necesarias:
ProxyPreserveHost On
ProxyPass "/image" "http://localhost:PORT/image"
ProxyPassReverse "/image" "http://localhost:PORT/image"
ProxyPass "/file" "http://localhost:PORT/file"
ProxyPassReverse "/file" "http://localhost:PORT/file"
Apache httpd ofrece laInclude
directiva para mantener un único fragmento de configuración con las configuraciones que desea incluir textualmente en diferentes lugares, VirtualHost, Ubicación, Bloques de directorio sin copiar las mismas líneas una y otra vez.