2011-08-08 4 views
7

क्या ऐसी साइट के बीच अंतर करने का कोई तरीका है जो किसी छवि को हॉटलिंक कर रहा है जो वास्तव में साइट पर छवि देख रहा है?साइट पर हॉटलिंकिंग बनाम उपयोगकर्ता के बीच अंतर

<img src="http://example.com/img.jpg"> 

वी.एस.

उपयोगकर्ता http://example.com/img.jpg

उत्तर

2

पर सीधे देखते हुए आप रेफरर जांच कर सकते हैं, लेकिन यह 100% सही नहीं है।

उपयोगकर्ता रेफरर और प्रॉक्सी को खराब कर सकता है या उपयोगकर्ता सेटिंग्स इसे स्ट्रिप/बदल सकता है।

+0

तर्कों के लिए कहें कि हॉटलिंक साइट पर कोड था और उसके बाद उस पर क्लिक किए गए उपयोगकर्ता के पास एक रेफरर होगा। वैसे भी उस विशेष परिदृश्य में दो मामलों को अलग करने के लिए? – imgguy

+0

यह भी स्पष्ट करने के लिए कि मैं अनुमान लगा रहा हूं कि हॉटलिंकिंग कोई रेफरर नहीं छोड़ती है? – imgguy

+2

@imgguy हॉटलिंकिंग एक संदर्भ दे सकती है जो आपकी साइट से मेल नहीं खाती है। विस्तृत प्रतिक्रिया के लिए – alex

5

आपका सर्वर आम तौर पर आपके डोमेन पर सीधे एक छवि को देखने वाले उपयोगकर्ता के बीच का अंतर बता सकता है, और दूसरा डोमेन आपकी छवि को हॉटलिंक कर सकता है।

हॉटलिंकिंग को रोकने और सीधे देखने की अनुमति देने का सामान्य समाधान .htaccess के माध्यम से है, केवल अपाचे को अपने डोमेन पर छवि फ़ाइलों की सेवा करने दें, अन्य डोमेन पर छवि फ़ाइलों की सेवा न करें।

तो, उपयोगकर्ता अभी भी आपकी छवि फ़ाइल पर जा सकता है ... क्योंकि आपकी छवि आपके डोमेन पर है, लेकिन आपकी छवि किसी अन्य डोमेन पर किसी छवि टैग में उपयोग नहीं की जा सकती है।

तो, कहीं आपकी .htaccess आप की तरह कुछ होगा:

RewriteEngine on 
RewriteCond %{HTTP_REFERER} !^$ 
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourdomain.com [NC] 
RewriteRule \.(jpg|jpeg|png|gif)$ - [NC,F,L] 

वहाँ online tools आप .htaccess की इन पंक्तियों बनाने में मदद करेंगे कि कर रहे हैं।

बेशक आपको यह प्रतिबंधित नहीं होना चाहिए, आप सामान्य रूप से हॉटलिंकिंग की अनुमति दे सकते हैं, लेकिन "परेशानी डोमेन" से केवल हॉटलिंकिंग को प्रतिबंधित कर सकते हैं।

इसके अलावा, stoping hotlinking के बजाय, आप अपाचे हैं कि कोई छवि सेवा करने के लिए प्राप्त कर सकते हैं गर्म linkers के लिए अपनी पसंद के बजाय छवि अनुरोध उन्होंने - http://www.yourdomain.com/hotlink.jpg नीचे मामले में:

RewriteEngine on 
RewriteCond %{HTTP_REFERER} !^$ 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain.com/.*$ [NC] 
RewriteRule \.(gif|jpg)$ http://www.yourdomain.com/hotlink.jpg [R,L] 

.htaccessexamples

+0

धन्यवाद। हम पूरी तरह से हॉटलिंकिंग की अनुमति देना चाहते हैं। मैं सिर्फ यह पता लगाने की कोशिश कर रहा हूं कि मैं htaccess के माध्यम से हॉटलिंकिंग और वास्तविक उपयोगकर्ता विज़िट के बीच अंतर कैसे कर सकता हूं। – imgguy

+0

आपको यह देखने के लिए जांच करनी चाहिए कि क्या यह पर्याप्त रूप से लॉग में संग्रहीत नहीं है या नहीं। यदि आपको लॉग सेट करने की आवश्यकता नहीं है। यह सब अपाचे सामान होगा, PHP नहीं। –

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