2011-11-19 112 views
9

我有一個安全的連接方向服務,我正在運行(expiringlinks.co)。如果我在PHP中更改標題以重定向我的訪問者,那麼Facebook可以顯示我在用戶通過Facebook發送鏈接到另一個鏈接時重定向到的網站的預覽。我希望避免這種情況。現在,我正在使用AJAX調用來獲取URL和JavaScript重定向,但是這會對不使用JavaScript的用戶造成問題。從我的網站阻止Facebook

這裏有一些方法,我想阻止Facebook的,但我似乎無法得到工作:

  1. 我試圖阻止Facebook的機器人(facebookexternalhit/1.0和facebookexternalhit/1.1),但它不工作,我不認爲他們正在使用它們的功能。

  2. 我想阻止Facebook的IP地址,但我找不到所有這些,我不認爲它會工作,除非我得到所有人。

  3. 我想過使用驗證碼甚至按鈕,但我不能讓自己這樣做給我的訪問者。更何況我不認爲有人會使用該網站。

  4. 我已經搜索了Facebook文檔中的meta標籤,它會「選擇退出」,但還沒有找到,並且懷疑我會信任它。

任何創意或任何想法如何實現上面的?提前感謝你!

+1

你是如何知道'(facebookexternalhit/1.0和facebookexternalhit/1.1)'?是通過他們的文檔還是傾銷了訪問者用戶代理?就我個人而言,我會嘗試設置所有用戶的用戶代理日誌,然後創建一個鏈接,並讓Facebook創建此鏈接的​​預覽。如果你發現一個可以用於Facebook的應用程序,請阻止它,看看會發生什麼。 Facebook還使用多個URL作爲外部內容的代理,比如'http:// external.ak.fbcdn.net/safe_image.php' – 2011-11-19 17:38:09

+0

我從他們的文檔和其他來源在線閱讀了有關漫遊器的信息。我一直在使用Piwik進行分析,並且在分享鏈接時無法檢測到Facebook。我不確定我是否明白您的網址代表的意思。 –

+0

他們使用來自「facebook.com」域以外的域的腳本來加載您的內容。他們還緩存內容,如果再次請求相同的內容(如圖片),Facebook將加載他們的緩存版本,而不是您的版本。如果您嘗試不止一次鏈接到同一個網址,這也可能在這裏。 – 2011-11-19 19:08:32

回答

2

試試這個 - 我的作品......

<?php 
$ua = $_SERVER['HTTP_USER_AGENT']; 

if (preg_match('/facebookexternalhit/si',$ua)) { 
header('Location: no_fb_page.php'); 
die() ; 
} 

?> 
+0

美麗!非常感謝! –

+0

不客氣:) –

0

您可以嘗試獲取Web服務器的日誌文件,並在那裏搜索非常規的useragents。 (也許包含臉譜) 或者,否則獲取日誌並刪除每個包含Internet Explorer/firefox/opera ... 然後,你應該只有機器人使用最終。 然後你可以搜索Facebook的一個。

0

您所需要做的就是適當設置robots.txt。

http://www.robotstxt.org/robotstxt.html

+0

...提供的Facebook實際上遵守這個規則。是這樣嗎? – glglgl

+0

@glglgl,我還沒有嘗試過,但如果網絡上這樣的主要玩家沒有遵循像robots.txt這樣基本的東西,如果出於法律原因涉及索引和存儲內容其他網站。如果您已經嘗試過,並且知道其他情況,請發帖。 – Brad

+1

我也不知道,但雖然'robots.txt'非常基本,但它並不是一個標準,我認爲他們不會因爲使用它而被指責爲nit。因爲他們根本不關心隱私,所以我不確定他們是否會這樣做,如果他們只是通過「robots.txt」告訴他們的話。如果我錯了,我們有幸... – glglgl

0

你可以嘗試使用元刷新,而不是一個JavaScript重定向。它們適用於所有瀏覽器,並且由於該頁面仍然會返回200響應,因此任何爬蟲都應該停止解析。

+0

我喜歡你的方法,但不禁想,如果Facebook鏈接爬蟲檢測到重定向HTTP標頭,爲什麼不檢測META重定向? –

+0

因爲HTTP頭是作爲響應的一部分發送的,所以機器人必須理解它的功能,元刷新是客戶端,並且需要bot解析響應並識別刷新。 顯然它可以做的事情,但如果我正在編寫一個機器人來解決URL,我可能會告訴它一旦收到200響應就停止解析。值得一去。 – alexarno

+0

現在,Facebook也越來越聰明地識別元刷新標籤。 – Goyllo