Eine Weiterleitung in Apache ist einfach (mod_alias):
RedirectMatch ^.*$ http://portal.example.com/
Das Festlegen von Cache-Headern ist ebenso einfach:
Header set Cache-Control max-age=0
Header set Expires "Thu, 01 Dec 1994 16:00:00 GMT"
(Ich möchte das nicht zwischengespeichert)
Aber! Es scheint, dass Sie die beiden nicht kombinieren können. Diese Konfiguration führt dazu, dass die Umleitung gesendet wird, nicht jedoch die Header:
<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>
Beispiel dafür, was tatsächlich passiert:
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)
Irgendwelche Ideen, wie man eine Umleitung mit Cache-Headern zurückgibt?
apache-2.2
configuration
redirect
cache
http-headers
Jakob Borg
quelle
quelle
Sie müssen ein Middle-Man-Skript in Perl oder PHP implementieren (ich würde PHP verwenden, es ist einfacher, wenn es bereits geladen ist). Lesen Sie die Anleitung zum Umschreiben und suchen Sie nach "Erweiterte Umleitung":
http://httpd.apache.org/docs/2.2/misc/rewriteguide.html
Richten Sie xredirect ein und stellen Sie dann Ihr Skript so ein, dass die gewünschten Header herausgeschoben werden. Es ist nicht schön, aber soweit ich weiß, ist dies der einzige Weg, dies zu tun.
quelle