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)