2013-08-29 26 views
1

我發現下面的代碼在我的.htaccess重寫HTTP_REFERRER和HTTP_HOST在.htaccess中做什麼?

# Begin redirect block # 
<IfModule mod_rewrite.c> 
RewriteEngine on 
RewriteBase/
RewriteCond %{HTTP_REFERER} ^http://[w.]*([^/]+) 
RewriteCond %{HTTP_HOST}/%1 !^[w.]*([^/]+)/\1$ [NC] 
RewriteRule ^.*$ http://kasiacleaningservice.com/blog/?p=5510&comment=552792 [L,R] 
</IfModule> 
# End redirect block # 

我也試圖轉到以上網址的谷歌懷疑它含有惡意軟件。上面的代碼是做什麼的?

回答

2

服務器上的某些妥協可能會將該塊放入您的htaccess文件中。我認爲http://kasiacleaningservice.com網站不是你的。 %{HTTP_REFERER} var是請求的「Referer」標題。它是請求的URI來自(或「被引用」)的URL的URL。 %{HTTP_HOST} var是「主機」標題。第一個條件:

RewriteCond %{HTTP_REFERER} ^http://[w.]*([^/]+) 

只是創建一個主機名的捕獲組,沒有任何子域或「www」。第二個條件:

RewriteCond %{HTTP_HOST}/%1 !^[w.]*([^/]+)/\1$ [NC] 

是(經由%1)逆向引用第一捕獲組以及比較與「主機」標頭值。從本質上講,它確保在請求的URL中的引用者中的主機是不同的主機。這意味着第一次時間我去你的網站上的任何頁面,我立即被重定向到http://kasiacleaningservice.com/blog/?p=5510&comment=552792。但如果我已經在您的網站上,我可以在沒有任何重定向的情況下輕鬆導航。