Faire une redirection dans Apache est facile (mod_alias):
RedirectMatch ^.*$ http://portal.example.com/
La définition des en-têtes de cache est tout aussi simple:
Header set Cache-Control max-age=0
Header set Expires "Thu, 01 Dec 1994 16:00:00 GMT"
(Je ne veux pas que cela soit mis en cache)
Mais! Il semble que vous ne puissiez pas combiner les deux. Cette configuration entraîne l'envoi de la redirection, mais pas les en-têtes:
<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>
Exemple de ce qui se passe réellement:
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)
Des idées sur la façon de retourner une redirection avec des en- têtes de cache?
apache-2.2
configuration
redirect
cache
http-headers
Jakob Borg
la source
la source
Vous devrez implémenter un script intermédiaire en Perl ou PHP (j'utiliserais PHP, c'est plus simple s'il est déjà chargé). Consultez le guide de réécriture, recherchez "Redirection étendue":
http://httpd.apache.org/docs/2.2/misc/rewriteguide.html
Configurez xredirect, puis définissez votre script pour extraire les en-têtes que vous voulez ... ce n'est pas joli, mais pour autant que je sache, c'est la seule façon de le faire.
la source