2012-12-14 102 views
7

我有一個網站「www.mysite.com」,它擁有自己的ip。現在幾個月後,我看到幾個域指向我的IP服務器(它不是一個共享IP)。我可以通過整個網站瀏覽那些未經授權的域名,他們會通過我的內容和所有內容在Google中索引。htaccess - 拒絕來自未經授權域名的請求

我該如何設置我的htaccess以允許僅對「www.mysite.com」的請求?

UPDATE

這是我與建議,到目前爲止寫的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] 

如果你有root權限,您也可以解決與基於域名的虛擬主機的問題如下:

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定義將被視爲一個默認虛擬主機。如果192.0.2.100作爲thiefdomain1.example,thiefdomain2.example,thiefdomain3.example,或除了www.yourdomain.example或YOURDOMAIN任何其他的主機名訪問。示例(在第二個VirtualHost中定義),Apache引用第一個VirtualHost並返回403 Forbidden狀態。

+0

謝謝你,這工作 – Carlo

+0

這些會影響HTML鏈接標記?例如,如果其他網站有'Link'上述代碼塊將訪問它們嗎? – codeninja

0

1)你的盜賊來自哪些IP?你能阻止這些IP嗎?

2)你有沒有報道他們對谷歌竊取內容(如果你能證明你是老闆)?

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)沒有ip被阻止,他們只是將他們的域名關聯到我的IP 2)我已經報告過,但他們改變域名,我必須從 開始4)我可以,但它會是非常將我的所有應用程序鏈接改爲絕對鏈接都很痛苦,並且它不能解決首頁問題 – Carlo

+0

如果IP或域被引用不是你的,你能否在你的頁面中放置代碼來執行301重定向到你的域名? http://www.phpjunkyard.com/tutorials/php-redirect.php – Sun

+0

這會工作,但我不知道是否有辦法用Apache來實現這一點,它讓我想知道如果我的網站是純文本的,我該怎麼辦? HTML – 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."; 
} 

如果你喜歡其他語言,他們可能有辦法獲取主機名。

相關問題