2016-01-21 105 views
1

我想只允許目錄/minsc的一個文件,但我想不允許目錄的其餘部分。只允許robots.txt中的一個目錄文件?

在robots.txt

現在是這樣的:

User-agent: * 
Crawl-delay: 10 
# Directories 
Disallow: /minsc/ 

,我想允許的文件是/minsc/menu-leaf.png

我怕造成傷害,所以我dont'know如果我一定要使用:

A)

User-agent: * 
Crawl-delay: 10 
# Directories 
Disallow: /minsc/ 
Allow: /minsc/menu-leaf.png 

B)

​​

非常感謝我的英語。

+0

不要忘了,機器人的文件是沒有任何一種安全的。這只是一個「建議」。所以我不認爲你可以在這裏做任何真正的傷害。如果你弄錯了,最糟糕的情況是搜索引擎將不再索引你的圖片文件。機器人文件*不會*阻止任何人直接訪問該文件或該文件夾中的任何其他文件,也不會阻止您的腳本工作。 –

回答

3

根據the robots.txt website

要排除所有文件,除了一個

這是目前有點尷尬,因爲沒有「允許」字段。該 簡單的方法是把所有的文件將被禁止到一個單獨的 目錄,說「東西」,並留下了一個文件中的一級,這 上面的目錄:

用戶代理:*

不允許:/〜喬/材料/

或者你可以明確地禁止所有禁止的網頁:

用戶代理:*

不允許:/~joe/junk.html

不允許:/~joe/foo.html

不允許:/~joe/bar.html

Wikipedia,如果你要使用允許指令,它應該不允許走之前最大的兼容性:

Allow: /directory1/myfile.html 
Disallow: /directory1/ 

此外,你應該把抓取延遲最後,根據Yandex

爲了保持與可能從 標準處理時的robots.txt偏離機器人的兼容性,抓取延遲指令需要 是添加到以Disallow和Allow指令之後的用戶代理記錄 開頭的組)。

那麼,到底,你的robots.txt文件應該是這樣的:

User-agent: * 
Allow: /minsc/menu-leaf.png 
Disallow: /minsc/ 
Crawl-delay: 10 
+0

所以我的帖子的選項(A),但最大compayability是更好地把「允許」之前不允許。好? :) – Borja

+0

@ user3162975我剛編輯我的答案。看看最後。 – pzp

0

Robots.txt是一種可以被不同解釋的「非正式」標準。唯一有趣的'標準'實際上是主要參與者如何解讀它的。

,我發現這個源說,通配符(「*」 - 風格通配符)不支持:

還要注意的是通配和正則表達式無論是在用戶代理或禁止線不被支持。用戶代理字段中的'*'是一個特殊的值,意思是「任何機器人」。具體而言,您不能擁有「User-agent:bot」,「Disallow:/ tmp/*」或「Disallow:* .gif」之類的行。

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

所以根據這個源,你應該用你的選擇(一)堅持下去。

+0

所以(A)該文件是允許的,而所有其餘的目錄是不允許的...是嗎?我害怕做破壞.. – Borja

+0

@ user3162975這就是我閱讀它的方式,但我不是這方面的專家---沒有保證。這方面沒有權威的標準;你可以做的是閱讀許多不同的來源並形成意見。 – jforberg

+0

嗯,你是對的:(與此同時別人寫,我試着瞭解更多....非常感謝!) – Borja

相關問題