Можно ли установить заголовки условно?
Я хотел бы, чтобы htaccess выполнял следующий код, только если http_referer от google (. com/. ru/ .co.uk /.co.in / и т.д.). Возможно ли это?
<filesMatch ".(jpg|jpeg|png|gif)$">
FileETag None
<ifModule mod_headers.c>
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"
</ifModule>
</FilesMatch>
2 ответа:
Ну я понял, что вы можете установить заголовки по-другому, используя mod_rewrite, что делает его намного проще:
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
Обратите внимание, что вы можете поставить условие в самой команде заголовка, в форматеap_expr (не требует mod_rewrite):
Header set Pragma "no-cache" "expr=%{HTTP_USER_AGENT}=~/(googlebot|bingbot|Baiduspider)/i && %{HTTP_REFERER}=~/google/i"
(не очень полезно в вашем конкретном случае, так как вам нужно добавить 3 заголовка)