2012-12-14 14 views
7

मेरे पास एक वेबसाइट "www.mysite.com" है, और इसका अपना आईपी है। अब कुछ महीनों के बाद से मैं अपने आईपी सर्वर पर इंगित कई डोमेन देखता हूं (यह एक साझा आईपी नहीं है)। मैं उन अनधिकृत डोमेन के साथ पूरी वेबसाइट के माध्यम से नेविगेट कर सकता हूं, वे मेरी सामग्री और सभी के साथ Google में अनुक्रमित हो जाते हैं।htaccess - अनधिकृत डोमेन से अनुरोध अस्वीकार करें

मैं केवल "www.mysite.com" के अनुरोधों की अनुमति देने के लिए अपना एचटीएसीएसी कैसे सेट कर सकता हूं?

अद्यतन

इस .htaccess मैं सुझावों के साथ अब तक लिखा है है, लेकिन किसी भी तरह पहले पृष्ठ अभी भी

.htaccess

SetEnvIfNoCase Referer "^http://(www.)?thiefdomain.com" spam_ref 
SetEnvIfNoCase Referer "^http://(www.)?thiefdomain2.com" spam_ref2 


<FilesMatch "(.*)"> 
    Order Allow,Deny 
    Allow from all 
    Deny from env=spam_ref 
    Deny from env=spam_ref2 
</FilesMatch> 

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ - [NC,L] 
RewriteRule ^.*$ index.php [NC,L] 
यद्यपि कोई छवियों के साथ परोसा जाता है,

मैं प्रदर्शित होने वाले पहले पृष्ठ से कैसे बच सकता हूं?

उत्तर

10

आप mod_rewrite साथ क्या करना चाहते हैं, तो आप अनधिकृत डोमेन को अवरूद्ध करने के लिए जाँच कर सकते हैं SERVER_NAME:

RewriteEngine on 
RewriteCond %{SERVER_NAME} ^(www\.)?thiefdomain1\.example$ [OR] 
RewriteCond %{SERVER_NAME} ^(www\.)?thiefdomain2\.example$ [OR] 
RewriteCond %{SERVER_NAME} ^(www\.)?thiefdomain3\.example$ 
RewriteRule^- [F] 

या

RewriteEngine on 
RewriteCond %{SERVER_NAME} !^(www\.)?yourdomain\.example$ 
RewriteCond %{SERVER_NAME} !^(www\.)?yourdomain-alias\.example$ 
RewriteRule^- [F] 

आप रूट विशेषाधिकार हैं, तो आप भी हल कर सकते हैं नाम-आधारित वर्चुअल होस्टिंग के साथ समस्या निम्नानुसार है:

NameVirtualHost *:80 

<VirtualHost 192.0.2.100:80> 
    ServerName dummy 
    <Location /> 
    Order deny,allow 
    Deny from all 
    </Location> 
    ... 
</VirtualHost> 

<VirtualHost 192.0.2.100:80> 
    ServerName www.yourdomain.example 
    ServerAlias yourdomain.example 
    ... 
</VirtualHost> 

पहले VirtualHost परिभाषा को डिफ़ॉल्ट वर्चुअल होस्ट के रूप में माना जाता है। यदि 1 9 2.0.2.100 को www.yourdomain.example या yourdomain को छोड़कर thiefdomain1.example, thiefdomain2.example, thiefdomain3.example, या किसी अन्य होस्टनाम के रूप में उपयोग किया जाता है।उदाहरण (दूसरे VirtualHost में परिभाषित), अपाचे पहले VirtualHost को संदर्भित करता है और 403 निषिद्ध स्थिति देता है।

+0

कोड के साथ मेरा प्रश्न अपडेट किया गया है, यह – Carlo

+0

काम करता है क्या ये HTML लिंक टैग को प्रभावित करेंगे? उदाहरण के लिए यदि अन्य साइट पर 'Link 'है तो उपर्युक्त कोड उन तक पहुंच जाएगा? – codeninja

0

1) आपके चोर कौन से आईपी आ रहे हैं? क्या आप उन आईपी को ब्लॉक कर सकते हैं?

2) क्या आपने उन्हें सामग्री चोरी के लिए Google को रिपोर्ट की है (यदि आप साबित कर सकते हैं कि आप मालिक हैं)?

3) क्या आपने डोमेन होस्टर को इसकी सूचना दी है? (जैसे GoDaddy)

4) तुम भी अपने HTML पुनर्लेखन कर सकते हैं ताकि वे रिश्तेदार के बजाय निरपेक्ष रास्ते हैं:

उदाहरण के लिए, एक रिश्तेदार पथ देखने की तरह होगा:

< a href="/page/2.html">page 2</a> 

निरपेक्ष पथ शामिल होंगे आपकी वेबसाइट का पता:

<a href="http://www.site.com/page/2.html">page 2</a> 
+0

1) ब्लॉक करने के लिए कोई आईपी नहीं है, वे सिर्फ अपने डोमेन को अपने आईपी 2 से जोड़ते हैं) मैंने इसकी सूचना दी है, लेकिन फिर वे डोमेन बदलते हैं और मुझे 4 से शुरू करना होगा) मैं कर सकता हूं, लेकिन यह बेहद होगा मेरे सभी एप्लिकेशन लिंक को पूर्ण करने के लिए दर्दनाक है, और यह होमपेज – Carlo

+0

के लिए समस्या का समाधान नहीं करेगा यदि आप आईपी या डोमेन का संदर्भित होने पर अपने डोमेन पर 301 रीडायरेक्ट करने के लिए अपने पृष्ठों में कोड डाल सकते हैं तो आपका नहीं है? http://www.phpjunkyard.com/tutorials/php-redirect.php – Sun

+0

यह काम करेगा, लेकिन मुझे आश्चर्य है कि अपाचे के साथ इसे पूरा करने का कोई तरीका है, तो मुझे आश्चर्य होता है कि अगर मैं अपनी वेबसाइट सादा में था तो मैं यह कैसे कर सकता हूं एचटीएमएल – Carlo

-4

मैं विशेष रूप से htaccess के लिए नहीं कह सकता। लेकिन प्रोग्रामिंग के माध्यम से, आप इसे प्राप्त कर सकते हैं। कहें, आपका डोमेन www.mydomain.com है। मान लीजिए कि ब्राउज़र आपकी वेबसाइट के बारे में मेरे लिए अनुभाग का अनुरोध कर रहा है। आप निम्नलिखित कर सकते हैं। मैं PHP के लिए दिखा रहा हूं (जैसा कि मैं PHP के साथ थोड़ा शिक्षित हूं)।

<?php 
if($_SERVER['HTTP_HOST'] == "your domain") 
{ 
//show content 
} 
else 
{ 
echo "your are not authorized to view contents from here."; 
} 

यदि आप अन्य भाषाओं को पसंद करते हैं, तो उनके पास होस्ट का नाम पाने का अपना तरीका हो सकता है।