簡體   English   中英

子目錄中的 robots.txt

[英]robots.txt in subdirectory

我有一個位於主域下的文件夾中的項目,但我無權訪問域本身的根目錄。

http://mydomain.com/myproject/

我想禁止在子文件夾“禁止”上建立索引

http://mydomain.com/myproject/forbidden/

我可以簡單地將 robots.txt 放在 myproject 文件夾中嗎? 即使根目錄中沒有 robots.txt,它也會被讀取嗎?

禁止禁止文件夾的正確語法是什么?

User-agent: *
Disallow: /forbidden/

或者

User-agent: *
Disallow: forbidden/

來自robotstxt.org

把它放在哪里

簡短的回答:在您的Web服務器的頂級目錄中。

答案越長:

當機器人查找URL的“/robots.txt”文件時,它會從URL中剝離路徑組件(來自第一個單斜杠的所有內容),並將“/robots.txt”放在其位置。

例如,對於“ http://www.example.com/shop/index.html ,它將刪除”/shop/index.html“,並將其替換為”/robots.txt“,最終將以“ http://www.example.com/robots.txt ”。

因此,作為網站所有者,您需要將其放在Web服務器上的正確位置,以便生成該URL。 通常,這是您放置網站主要“index.html”歡迎頁面的位置。 究竟是什么,以及如何將文件放在那里,取決於您的Web服務器軟件。

請記住使用全文小寫作為文件名:“robots.txt”,而不是“Robots.TXT。

所以我害怕答案是你必須把它放在根文件夾中:-(

關於你的第二個問題,我認為正確的語法是以正斜杠開頭的語法(例如/forbidden/ )。

你不能不幸。 Robots.txt只能在域的根目錄下。

也許如果你問領域的所有者,他會有責任嗎?

第一種語法是正確的語法,但請記住它必須是來自域根的絕對路徑。

如果您沒有root,則可以使用“robots meta tag”。

https://developers.google.com/webmasters/control-crawl-index/docs/robots_meta_tag

實際上,我可以在子文件夾中看到robots.txt上的各種機器人的請求,這總是會導致404錯誤。 只是其中一些機器人:

因此,如果您想阻止這些用dumb 404錯誤向您的錯誤日志發送垃圾郵件,您可以通過.htaccess將這些請求重定向到正確的位置:

RewriteRule .+/robots.txt$ /robots.txt [R=301,L]

由於這是谷歌搜索時顯示的最佳結果之一,我想提供更新的答案並參考谷歌自己的文檔。 從上一個答案鏈接的 robotstxt 網站已經過時並且有一些不正確的信息,盡管 Klaus 的答案基本保持不變。

簡而言之:不。 它必須在根目錄中。 這是谷歌對此事的官方聲明

較長的版本是您應該使用機器人元標記來禁止子目錄中的某些頁面,如 Stairbob 所建議的那樣。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM