Définir un en-tête par Content-Type

Je l’ai déjà utilisé

 ExpiresActive On ExpiresByType image/gif "now plus 2 weeks" // Lots omitted here  

Et ça;

   Header set Cache-Control "max-age=1209600"  // Lots omitted here  

Je peux définir l’expiration par type de contenu et je peux définir n’importe quel en-tête que je souhaite par extension de fichier.

Mais aucun de ces éléments ne semble vous permettre de définir un en-tête par type de contenu.

Je veux définir l’en-tête de contrôle de cache en fonction du type de contenu de la réponse – notez que ce n’est pas la même que l’extension de fichier. J’ai des “URL conviviales”, il n’y a donc pas d’extension de fichier à capturer par filesMatch , il n’y a donc pas d’extension de fichier, mais le type de contenu est text/html .

Comment puis-je définir l’en-tête de contrôle du cache pour des types de contenu spécifiques?

Dans 2.4, vous pouvez append expr = à la directive Header au lieu de env =.

Dans le mode par défaut (non précoce), mod_headers s’exécute en tant que filtre de sortie – le type de contenu est donc déjà défini et disponible par l’parsingur d’expression

http://httpd.apache.org/docs/2.4/expr.html

Je suppose que vous devrez append ou définir d’abord l’en-tête Cache-Control. Veuillez essayer l’extrait de code ci-dessous et ne pas oublier le paramètre “sans transformation”.

  ExpiresActive On ExpiresByType image/gif "now plus 2 weeks" // Lots omitted here //This is the magic  Header append Cache-Control "public, no-transform"   

Si vous souhaitez que le type de contenu du cache, vous pouvez le saisir de cette manière:

  ExpiresActive on ExpiresByType text/html "access plus 15 days"