استاندارد استثناء کردن رباتها
آگاه سازی :
![]() | برای تأییدپذیری کامل این مقاله به منابع بیشتری نیاز است. (مه ۲۰۱۷) |
این مقاله نیازمند ویکیسازی است. لطفاً با توجه به راهنمای ویرایش و شیوهنامه، محتوای آن را بهبود بخشید. (مه ۲۰۱۷) |
فایل robots.txt یا استاندارد استثنا کردن رباتهای اینترنتی (یا ربات وب) که همچنین به پروتکل استثنا کردن رباتها شناخته میشود، معیاری برای ارتباط با خزندههای وب و روباتهای وب است. این استاندارد توسط وبسایتها استفاده میشود تا چگونگی آگاهی دادن به ربات های وب دربارهٔ اینکه کدام قسمت از صفحات وب نباید مورد پیمایش قرار گیرد را مشخص کند. رباتها اغلب برای دستهبندی کردن وبسایتها توسط موتورهای جستجو مورد استفاده قرار میگیرند البته همهٔ رباتها از این معیارها پیروی نمیکنند حتی email harvesters, spambots malware و رباتهایی که آسیبپذیریهای امنیتی را چک میکنند ممکن است کار خود را از قسمتهایی از وبسایت شروع کنند که به آنها اجازهٔ ورود داده نشده. همچنین کسانی که تست نفوذ انجام میدهند با بررسی کردن مسیر /robots.txt در سایت ها، به قسمت های disallow میروند و دنبال باگ برای نفوذ میگردند.
تاریخچه
[ویرایش]این استاندارد توسط فردی به نام Martijn Koster در فوریه سال ۱۹۹۴ در حالیکه مشغول به کار برای Nexor بر روی لیست پستی www-talk بود ارائه شد که در واقع اصلیترین کانال ارتباط برای فعالیتهای WWW-related در آن زمان محسوب میشد. Charles Stross ادعا میکند که او بعد از نوشتن یک خزندهٔ وب مخرب که موجب قطع ارتباط سهوی (denial of service)برای سرورهای Koster شد باعث شد تا koster این پیشنهاد را بدهد.
این موضوع به سرعت به یک استاندارد غیررسمی تبدیل شد که انتظار میرفت خزندههای وب حال و آینده از آن پیروی کنند البته اکثر آنها از جمله دستهای که به کمک موتورهای جستجو کار میکردند مانند Lycos و AltaVista پیرو این استاندارد بودند.
دربارهٔ استاندارد
[ویرایش]زمانی که صاحب سایت قصد دادن دستورالعملها به یک ربات وب را دارد آنها یک فایل متنی در واقع robots.txt را در ریشه یک وبسایت قرار میدهند مانندhttps://web.archive.org/web/20131003131931/http://www.example.com/robots.txt این فایل نوشتاری، شامل دستورالعمل در یک قالببندی خاص میباشد (مثال زیر را ببینید) رباتهایی که از این دستورالعملها پیروی میکنند، سعی میکنند که قبل از گرفتن فایل دیگری از این وبسایت، این فایل را بگیرند و دستورالعملها را بخوانند. درصورت موجود نبودن این فایل رباتها بافرض اینکه صاحب سایت قصد ارائهٔ هیچ دستورالعمل خاصی را ندارد، کل سایت را میخزند.
یک فایل robots.txt[۱] مانند یک درخواست عمل میکند که در واقع چشم پوشی از فایلها یا دایرکتوریهای خاص را هنگام خزیدن یک وبسایت برای رباتها مشخص میکند.
لینکها به صفحههایی که در robots.txt لیست شدهاند اگر به صفحههای دیگری که پیمایش شدهاند لینک باشند هنوز هم میتوانند در نتایج جستجو ظاهر شوند.
هر robots.txt فقط میتواند یک منبع (origin) را پوشش دهد برای یک وبسایت که دارای چندین زیر دامنه است هر زیر دامنه باید یک robots.txt داشته باشند مثلاً اگر example.com یک robots.txt داشته باشد اما a.example.com نداشته باشد قوانینی که بر روی example.com اعمال میشود روی a.example.com اعمال نخواهد شد همچنین هر پروتکل و پورت به robots.txt خودش نیاز دارد.
- https://web.archive.org/web/20140510094021/http://www.example.com/robots.txtبرایhttps://example.com:8080/[پیوند مرده] یا https://example.com/ کار نمیکند.
تعداد زیادی از موتورهای جستجو از جمله Ask, AOL, Baidu, Bing, Google, Yahoo! و Yandex از این استانداردها پیروی میکنند.
مثالها
[ویرایش]این دستور به همهٔ رباتها میگوید که میتوانند از همهٔ فایلها بازدید کنند چون علامت * یه معنی همهٔ رباتها میباشد و چون دستور disallow
هیچ مقداری ندارد به این معنی است که هیچ صفحهای disallowed نشده.
User-agent: *
Disallow:
این نتیجه را میتوان از یک فایل robot.txt خالی یا حتی بدون فایل robot.txt به دست آورد.
این دستور به همه رباتها میگوید که وارد وبسایت نشوند:
User-agent: *
Disallow: /
این مثال به همه رباتها میگوید که وارد سه دایرکتوری نشوند:
User-agent: *
Disallow: /cgi-bin/
Disallow: /tmp/
Disallow: /junk/
این مثال به همهٔ رباتها میگوید که وارد یک پوشه خاص نشوند:
User-agent: *
Disallow: /directory/file.html
توجه کنید که همه فایلهای دیگر در این دایرکتوری، پیموده میشوند.
این مثال به یک ربات خاص میگوید که وارد وبسایت نشود:
User-agent: BadBot # replace 'BadBot' with the
actual user-agent of the bot
Disallow: /
این مثال به دو ربات خاص میگوید که وارد یک دایرکتوری خاص نشوند:
User-agent: BadBot # replace 'BadBot' with the
actual user-agent of the bot
User-agent: Googlebot
Disallow: /private/
این مثال نشان میدهد که چطور کامنتها مورد استفاده قرار میگیرند.
# Comments appear after the "#" symbol at the
start of a line, or after a directive
User-agent: * # match all bots
Disallow: / # keep them out
همچنین میتوان چندین ربات را همراه با قوانین خودشان لیست کرد.
تعدادی کمی از سایتها مانند google از چندین user-agent پشتیبانی میکند که با استفاده از رشتههای user-agent خاص به اپراتور اجازه قطع دسترسی از زیرمجموعهٔ سرویسهای آنها را میدهد.
User-agent: googlebot # all Google
services
Disallow: /private/ # disallow this
directory
User-agent: googlebot-news # only the news
service
Disallow: / # disallow
everything
User-agent: * # any robot
Disallow: /something/ # disallow this
directory
افزونههای غیر استاندارد
[ویرایش]دستور دیر خزیدن
دستور دیر خزیدن یا crawl-delay، ارزشی است که توسط برخی از رباتهای خزنده وب پشتیبانی میشود. از این دستور برای محدود کردن Crawlerها استفاده میشود. از آنجایی که این دستور در استاندارد وب رباتها تعریف نشدهاست، هر ربات میتواند به شکل خاصی آن را تغییر کند. برای مثال موتور جستجوی یاندکس، این دستور را به عنوان زمان تأخیر در بین مشاهده و بررسی هر وب سایت تعبیر میکند. موتور جستجوی بینگ نیز این دستور را به عنوان مهلت زمانی تعبیر میکند، مهلت زمانی که طی آن اجازه دسترسی به یک صفحه را دارد.
User-agent: *
Crawl-delay: 10
دستور اجازه
[ویرایش]برخی از موتورهای جستجو، مانند گوگل؛ میتوانند از یک دستور دیگر به نام اجازه یا Allow نیز پیروی کنند. این دستور زمانی کاربرد دارد که وب مستر به ربات خزنده دستور میدهد که یک صفحه را بهطور کل نادیده بگیرد، اما بخشی از آن را ایندکس و در نتایج جستجو ثبت کند. به این ترتیب، ربات خزنده تنها قسمتی از یک صفحه مانند برخی از کدهای HTML یا تصاویر سایت را در موتور جستجو ثبت میکند، بدون اینکه صفحه مورد نظر ایندکس شود.
Allow: /directory1/myfile.html
Disallow: /directory1/
در مثال بالا تمام محتویات دایرکتوری directory1/ نادیده گرفته میشود، به جز /directory1/myfile.html
دستور نقشه سایت
[ویرایش]برخی از موتورهای جستجو از دستور نقشه سایت پیروی میکنند. این دستور اجازه میدهد چند نقشه سایت را در یک فایل robots.txt مدیریت کرد.
Sitemap: http://www.gstatic.com/s2/sitemaps/profiles-sitemap.xml%7B%7Bسخ}}
Sitemap: http://www.google.com/hostednews/sitemap_index.xml%7B%7Bسخ}}
متا تگها
[ویرایش]علاوه بر دستورها فایل robots.txt که در سطح سرور انجام میشوند، دستورهایی وجود دارند که در سطح صفحات وبسایت انجام میشوند. این دستورها از طریق متا تگهای رباتها و تگهای X-Robots اجرا میشوند.
از متا تگهای ربات نمیتوان برای فایلهای غیر HTML مانند تصاویر، فایلهای متنی یا اسناد PDF استفاده کرد. از طرف دیگر از تگهای X-Robots میتوان با استفاده از دستورها .htaccess برای فایلهای غیر HTML استفاده کرد.
متا تگ noindex
[ویرایش]<meta name="robots" content="noindex"/>