仲介交易 HTTP://www.aliyun.com/zixun/aggregation/6858.html">SEO診斷 淘寶客 雲主機 技術大廳
為什麼我們要逆著常理來這樣做?
如果你是一個站長,估計你總在千方百計的讓你的網站能在搜尋引擎裡面找到,並且能夠在搜尋引擎裡面排名靠前,但有時,你可能並沒登陸過任何搜尋引擎,可卻莫名其妙的發現可以通過它搜索到你的網站。 或許有的主頁內容你樂於世人皆知,但有的內容你卻不願被洞察、索引。 可能你要求使用者驗證,但這並不能逃避搜尋引擎的搜索,只要在搜尋引擎裡面搜索到你的這個網頁,不用密碼照樣可以登陸。 並且簡單的加密常常容易被攻破。 難道使用資料庫嗎? 這不但消耗寶貴網站空間資源,對於一些簡單的網站,又無法實現。 怎麼辦呢? 搜尋引擎不是個瞞不講理,橫行霸道的入室盜賊。 如何把搜尋引擎拒之門外呢?
探索一下搜尋引擎的的原理
首先,我們要知道搜尋引擎的工作原理。 網路搜尋引擎主要由網路機器人(Robot,這個是全文的關鍵)、索引資料庫和查詢服務三個部分組成。 只要被網頁機器人找到的網頁,就會在搜尋引擎的資料庫中建立索引。 利用查詢用戶端,就一定可以找到你的網頁。 所以下面的關鍵是研究這個網路機器人。 索引資料庫和查詢服務的原理我們就不詳細分析了。
Web Robot其實是種程式,它可以偵測大量Internet網址的超文字結構和網頁裡的URL連接,遞迴地檢索網路網站所有的內容。 這些程式有時被叫「蜘蛛(Spider)」,「網上流浪漢(Web Wanderer)」,「網路蠕蟲(web worms)」或Web crawler。 大型的搜尋引擎網站(Search Engines)有專門的Web Robot程式來完成這些資訊的採集。 高性能的Web Root去自動地在互聯網中搜索資訊。 一個典型的網路機器人的工作方式,是查看一個頁面,並從中找到相關的關鍵字和網頁資訊,例如:標題,網頁在瀏覽器上的Title,還有一些經常被用來搜索的詞彙,等等。 然後它再從該頁面的所有連結中出發,繼續尋找相關的資訊,以此類推,直至窮盡。 網路機器人為實現其快速地流覽整個互聯網,通常在技術上採用搶先式多執行緒技術實現在網上聚集資訊。 通過搶先式多執行緒的使用,它能索引一個基於URL連結的Web頁面,啟動一個新的執行緒跟隨每個新的URL連結,索引一個新的URL起點。 把搜索到的資訊建立索引,就可以讓使用者搜索了。 呵呵,可能你會想到,這樣下去,不是個無限迴圈呀? 當然,機器人也需要休息的,網路機器人是定期發出,完成一個工作時段就結束。 所以,剛製作完成的網頁,不會馬上被收入搜尋引擎索引裡。 說到這裡,網路搜尋引擎的基本工作原理基本上讓大家瞭解了。 指揮這個網路機器人,不讓它見門就進,見路就闖,就是接下來的工作了。
逃避搜尋引擎的法眼
作為搜尋引擎的開發者,同樣留給了網路系統管理員或網頁製作者提供了些方法來限制網路機器人的行動:
當robots訪問一個網站(比如/google)時,首先會像一個大宅子的陌生訪問者一樣,先查看查看該宅子是否同意它進入。 如果不同意,它就悄然無聲的走掉;如果同意,它會看看主人只允許它進入那些房間。 網路機器人首先檢查該網站中是否存在/google/robots.txt這個檔,如果找不到這個檔,那麼,機器人就會橫沖直入,查遍它需要查找的資訊。 如果機器人找到這個檔,它就會根據這個檔的內容,來確定它存取權限的範圍。 當然,如果該檔的內容為空的話,那麼也就相當於沒有找到檔一樣,大膽行事。 記住robots.txt檔應該放在網站根目錄下。
robots.txt檔中的記錄通常以一行或多行User-agent開始,後面加上若干Disallow行,詳細情況如下:
User-agent:
該值用於描述搜尋引擎robot的名字,不同的搜尋引擎是有不同的名字的,在"robots.txt"檔中,如果有多條User-agent記錄說明有多個robot會受到該協定的限制,對這個檔來說,如果你需要限制robots ,那麼至少要有一條User-agent記錄。 如果該項的值設為*,則該協定對任何機器人均有效,在"robots.txt"檔中," User-agent: * "這樣的記錄只能有一條。
Disallow :
該值用於限制robot訪問到的一個URL,這個URL可以是一條完整的路徑,也可以是部分的,任何以Disallow 開頭的URL均不會被robot訪問到。 例如「Disallow: /hacker」對/hacker.html 和/hacker/index.html都不允許搜尋引擎訪問,而「Disallow: /hacker/」則robot照樣可以訪問/ hacker.html,而不能訪問/hacker/index.html。 任何一條Disallow記錄為空,也就是說在多條Disallow記錄下,只要有一條是寫成「Disallow:」說明該網站的所有內容都允許被訪問,在"/robots.txt"檔中,至少要有一條Disallow記錄。
下面是Robot.txt的一些例子,只要把下列的任何一個代碼保存為robots.txt,然後傳到指定位置,就可以實現逃避搜尋引擎的法眼:
例1. 禁止所有搜尋引擎訪問網站的任何部分:
User-agent: *
Disallow: /
例2. 允許所有的robot訪問:
User-agent: *
Disallow:
例3. 禁止某個搜尋引擎的訪問:
User-agent: BadBot
Disallow: /
例4. 允許某個搜尋引擎的訪問:
User-agent: baiduspider
Disallow:
User-agent: *
Disallow: /
例5. 一個簡單例子:
在這個例子中,該網站有三個目錄對搜尋引擎的訪問做了限制,即搜尋引擎不會訪問這三個目錄。 需要注意的是對每一個目錄必須分開聲明,而不要寫成 "Disallow: /cgi-bin/ /bbs/"。 User-agent:後的* 具有特殊的含義,代表"any robot",所以在該檔中不能有"Disallow: /bbs/*" or "Disallow: *.gif"這樣的記錄出現.
User-agent: *
Disallow: /cgi-bin/
Disallow: /bbs/
Disallow: /~private/
結束語:是不是這樣設置後,搜尋引擎馬上就找不到我們所限制的網頁呢? 不是的,就像文章開始前說過,網路機器人是定期發出,一旦在索引資料庫裡面做了記錄,就要等下次更新資料庫時才有可能生效。 一個快捷的辦法,就是馬上到搜尋引擎上去登出你的網頁,可這個也是需要等待幾天的。 如果對十分重要的網頁,只要更換個目錄或檔案名就可以了。
對於你已經希望保密的網頁來說,千萬不要在其他未保密的網頁裡有URL連接到這些網頁上,在網路機器人工作原理那已經說過,它可以從該頁面的所有連結中出發,繼續尋找相關的資訊。
可能到了這,你已經對你的保密網頁感到安全了。 可是,你想到沒有,對於純文字檔,是可以通過HTTP,或FTP下載的。 也就是說,有存心不良的人,可以通過這個robots.txt找到一些線索。 解決的辦法是,最好使用Disallow時,用來限制目錄,並且對這個目錄下需要保密的網頁,使用特殊的檔案名,不要使用index.html之類的名字,不然,這跟猜弱口令一樣容易。 起些形如d3gey32.html的檔案名,你的網頁就安全多了。
最後不放心的話就再給保密網頁上上一到密碼驗證的保險,讓你高枕無憂。