Apache redirigir y configurar encabezados de caché?


10

Hacer una redirección en Apache es fácil (mod_alias):

RedirectMatch ^.*$ http://portal.example.com/

Establecer encabezados de caché es igualmente fácil:

Header set Cache-Control max-age=0
Header set Expires "Thu, 01 Dec 1994 16:00:00 GMT"

(No quiero esto en caché)

¡Pero! Parece que no puedes combinar los dos. Esta configuración hace que se envíe la redirección, pero no los encabezados:

<VirtualHost *:80>
        ServerName __default__
        Header set Cache-Control max-age=0
        Header set Expires "Thu, 01 Dec 1994 16:00:00 GMT"
        RedirectMatch ^.*$ http://portal.example.com/
</VirtualHost>

Ejemplo de lo que realmente sucede:

jb@apto % telnet 192.168.0.1 80
Trying 192.168.0.1...
Connected to redirector.example.com.
Escape character is '^]'.
GET / HTTP/1.1
Host: foo

HTTP/1.1 302 Found
Date: Sat, 21 Aug 2010 09:36:38 GMT
Server: Apache/2.2.9 (Debian) Phusion_Passenger/2.2.9
Location: http://portal.example.com/
Vary: Accept-Encoding
Content-Length: 316
Content-Type: text/html; charset=iso-8859-1

(etc)

¿Alguna idea de cómo devolver una redirección con encabezados de caché?

Respuestas:


10

Intente agregar la condición "siempre" a su directiva Encabezado, para que se vea así:

Header always set Cache-Control max-age=0
Header always set Expires "Thu, 01 Dec 1994 16:00:00 GMT"

Esto debería funcionar, sin la condición "siempre", creo que el valor predeterminado es "onsuccess", que se define como cualquier código de respuesta 2xx.


!!! No sé cómo me perdí esto, ¡pero sí!
Jakob Borg

Si esto es. Excelente.
Cosimo

Esto no parece funcionar para encabezados personalizados, extraño
juan

0

Deberá implementar un script de intermediario en Perl o PHP (usaría PHP, es más simple si ya está cargado). Consulte la guía de reescritura, busque "Redirección extendida":

http://httpd.apache.org/docs/2.2/misc/rewriteguide.html

Configure el xredirect, luego configure su script para sacar los encabezados que desee ... no es bonito, pero que yo sepa, es la única forma de hacerlo.


De hecho, no es bonito, estoy bastante sorprendido de que esto no sea factible de una mejor manera (directamente en la configuración), pero parece una respuesta correcta. :(
Jakob Borg
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.