Apache reindirizza e imposta le intestazioni della cache?


10

Fare un reindirizzamento in Apache è facile (mod_alias):

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

L'impostazione delle intestazioni della cache è altrettanto semplice:

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

(Non voglio questo nella cache)

Ma! Sembra che non puoi unire i due. Questa configurazione comporta l'invio del reindirizzamento, ma non le intestazioni:

<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>

Esempio di ciò che accade realmente:

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)

Qualche idea su come restituire un reindirizzamento con le intestazioni della cache?

Risposte:


10

Prova ad aggiungere la condizione "sempre" alla direttiva Header, quindi dovrebbe apparire così:

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

Questo dovrebbe funzionare, senza la condizione "sempre", credo che sia impostato su "onsuccess", definito come qualsiasi codice di risposta 2xx.


!!! Non so come mi sia perso, ma sì!
Jakob Borg,

Sì, eccolo. Grande.
Cosimo,

Questo non sembra funzionare per intestazioni personalizzate, strano
juan

0

Dovrai implementare uno script intermedio in Perl o PHP (userei PHP, è più semplice se già caricato). Consulta la guida di riscrittura, cerca "Reindirizzamento esteso":

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

Imposta xredirect, quindi imposta il tuo script per eliminare le intestazioni che desideri ... non è carino, ma per quanto ne so è l'unico modo per farlo.


Non proprio davvero, sono piuttosto sorpreso che questo non sia fattibile in modo migliore (direttamente nella configurazione), ma sembra una risposta corretta. :(
Jakob Borg,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.