2013-01-24 75 views
0

我試圖在WP博客安裝上設置一個重定向,它將檢測任何來自不知名人(即不是來自其他站點)的人。這個想法是捕捉一些將預先構建的URL插入系統的垃圾郵件來創建評論/帖子。我想,如果他們沒有引薦網站,我可以將它們彈回到主頁(www.domain.com/index.php或www.domain.com),這應該與漫遊器混爲一談,但不會與真實的人混淆。.htaccess基於HTTP_REFERER爲空的重定向

我明白,推薦人可以僞造,但希望至少可以阻止愚蠢行爲。

我對於.htaccess重寫規則(我對作爲noob的道歉)知之甚少,但是我找不到在現有答案或其他任何在線任何地方做過這些的人,儘管有多次搜索。要麼沒有人做到了,要麼我沒有正確的措辭。

任何幫助表示讚賞。 :)

回答

1

我建議不要這樣做。通過這樣做,您可能會惹惱和疏遠您的用戶的一部分潛力:例如,我的瀏覽器設置爲不報告引薦者信息,其他人使用匿名網絡。您可以通過匹配報告的用戶代理字符串來捕獲轉儲程序(見here)。

否則它很簡單:比賽反對HTTP_REFERER環境變量中的RewriteCond:

RewriteCond %{HTTP_REFERER} ^$ 
RewriteRule .* http://example.com/ 

的的RewriteCond檢查,看是否引用者是一個空字符串; RewriteRule將所有內容重定向到http://example.com/根目錄。這是一個硬重定向,這意味着服務器將發出一個R = 301永久移動標題。如果您只是想偷偷提供其他資源,請使用軟重定向,方法是指定相對URL,例如RewriteRule .* index.php。但是,對於不報告引薦來源信息的用戶將其重定向到一個頁面,例如「如果您要閱讀此頁面時應該啓用引用來源報告」,這可能會更好。

有關此類事例的更多示例,請參閱the manual。那裏有一個非常類似的防止盜鏈的方法。

+0

很好,謝謝!我很想做簡單的版本,因爲它純粹是一個重定向到主頁:它不會將它們傳輸到任何真正糟糕,煩人或以其他方式引發的地方。不過,我已經爲所有可怕的bot代碼添加了書籤。我可以先嚐試一下,看看它是否阻止了它們,如果沒有阻止,那麼做另一個。再次感謝您提供豐富有用的答案。真棒! 編輯:剛剛發現無盡的循環潛力(沒有報告從瀏覽器重定向,甚至在網站上)。呸。建議多餘頁面的時間,謝謝! –

相關問題