2012-12-14 21 views
7

"www.mysite.com" adlı bir web sitem var ve kendi ipi var. Birkaç aydan beri, ip sunucumu işaret eden birkaç alan görüyorum (paylaşılan bir ip değil). Tüm web sitesi üzerinden yetkisiz alanlarla gezinebilir, içeriğim ve içeriğimle google'da dizine eklenirler.htaccess - Yetkilendirilmemiş alanlardan gelen istekleri reddetme

Htaccess'i yalnızca "www.mysite.com" isteklerine izin verecek şekilde nasıl ayarlayabilirim?

GÜNCELLEME

bu ben önerilerle şimdiye kadar yazdım Htaccess olduğunu, ama bir şekilde ilk sayfa hala

.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] 
tho hiçbir görüntülerle, servis edilir

Görüntülenecek ilk sayfadan nasıl kurtulabilirim?

cevap

10

, yetkisiz etki engellemek için SERVER_NAME kontrol edebilirsiniz:

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

veya

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

Eğer root yetkileri varsa

, ayrıca çözebilir ad-tabanlı sanal barındırma ile ilgili sorun şu şekilde olabilir:

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> 

İlk VirtualHost tanımı, varsayılan sanal ana bilgisayarı olarak kabul edilir. 192.0.2.100 alanına thiefdomain1.example, thiefdomain2.example, thiefdomain3.example veya www.alanadiniz.example veya alan adınız haricinde başka herhangi bir ana makine adı olarak erişilir.Örnek (ikinci VirtualHost'da tanımlanmıştır), Apache ilk VirtualHost'u belirtir ve 403 Yasak durumu döndürür.

+0

koduyla güncelledim Teşekkür ederim, bu işe yarar – Carlo

+0

Bunlar html bağlantı etiketlerini etkiler mi? Örneğin, başka bir site bir "Link" içeriyorsa, yukarıdaki kod bloğu onlara erişir mi? – codeninja

0

1) Hırsızlarınızın hangi IP'leri geliyor? Bu IP'leri engelleyebilir misiniz?

2) İçerik çalmak için bunları Google'a bildirdiniz mi (sahibi olduğunuzu ispatlayabilirseniz)?

3) Bunu etki alanı barındırıcısına rapor ettiniz mi?

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

mutlak yol içerecektir: (örn GoDaddy)

4) onlar mutlak yerine göreli yolları böylece Ayrıca HTML yazabilirsiniz: gibi Örneğin

, göreli bir yol olmazdı web site adresiniz:

+0

1) engellemek için bir ip yok, sadece etki alanlarını benim ipim ile ilişkilendiriyorlar 2) Bunu bildirdim, ancak etki alanını değiştirdiler ve üzerinden başlamalıyım 4) Yapabilirim, ancak aşırı derecede tüm uygulama linklerimi mutlak olanlara çevirmek acı verici ve bu, ana sayfa için sorunu çözmeyecek – Carlo

+0

IP veya etki alanı referansı size ait değilse, etki alanınıza bir 301 yönlendirmesi gerçekleştirmek için sayfalarınıza kod koyabilirsiniz? http://www.phpjunkyard.com/tutorials/php-redirect.php – Sun

+0

Bu işe yarar, ama acaba bunu Apache ile gerçekleştirmenin bir yolu olup olmadığını merak ediyorum, web sitem düzse, bunu nasıl yapabileceğimi merak ediyorum HTML – Carlo

-4

Özellikle htaccess için söyleyemem. ama programlama yoluyla bunu başarabilirsiniz. diyelim, alan adınız www.mydomain.com. tarayıcının web sitenizin yaklaşık-me bölümünü talep ettiğini varsayalım. aşağıdakileri yapabilirsiniz. PHP için gösteriyorum (php ile az eğitimli olduğum için). Diğer dilleri tercih ederseniz, ana bilgisayar adını elde etmek için kendi yollarına sahip olabilirler. Eğer mod_rewrite ile yapmak istiyorsanız