Est-il possible de définir des en-têtes conditionnellement?

Je voudrais htaccess effectuer le code suivant seulement si http_referer est de google (.com / .ru / .co.uk /.co.in/ etc.). Est-ce possible?

 FileETag None  Header unset ETag Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate" Header set Pragma "no-cache" Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"   

Eh bien, j’ai compris que vous pouviez définir les en-têtes d’une manière différente en utilisant mod_rewrite, ce qui simplifiait beaucoup les choses:

 RewriteCond %{HTTP_USER_AGENT} !(googlebot|bingbot|Baiduspider) [NC] RewriteCond %{HTTP_REFERER} google [NC] RewriteRule ^.*$ - [ENV=LONGCACHE:true] Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate" env=LONGCACHE Header set Pragma "no-cache" env=LONGCACHE Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT" env=LONGCACHE 

Notez que vous pouvez mettre la condition dans la commande Header elle-même, au format ap_expr (ne nécessite pas mod_rewrite):

 Header set Pragma "no-cache" "expr=%{HTTP_USER_AGENT}=~/(googlebot|bingbot|Baiduspider)/i && %{HTTP_REFERER}=~/google/i" 

(pas très utile dans votre cas particulier puisque vous devez append 3 en-têtes)