2013-04-18 11 views
7

http_refererがgoogle(.com/.ru/.co.uk /co.in/など)の場合にのみ、次のコードを実行するためにhtaccessを使用したいと思います。これは可能ですか?ヘッダーを条件付きで設定することはできますか?

<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> 

答えて

14

まあ、私はあなたはそれがはるかに簡単に作るのmod_rewriteを使用して、ヘッダーに別の方法を設定することができます考え出した:あなたはap_expr形式で、ヘッダーコマンド自体に条件を置くことができる

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 
4

注意(し)のmod_rewriteを必要としない:

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

(あなたの特定のケースで非常に有用ではない、あなたが3つのヘッダを追加する必要があるため)

関連する問題