2013-04-18 11 views
7

मैं केवल निम्नलिखित कोड करने के लिए 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> 

उत्तर

14

खैर मैं पता लगा आप हेडर बनाने 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 
4

ध्यान दें कि आप हैडर आदेश अपने आप में हालत डाल सकते हैं, ap_expr प्रारूप में (करता है mod_rewrite नहीं की आवश्यकता होती है):

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

(बहुत अपने विशेष मामले में उपयोगी नहीं जब से तुम 3 हेडर जोड़ने की जरूरत है)

संबंधित मुद्दे

 संबंधित मुद्दे