Bisakah robots.txt berada di sub-direktori server?

16

Saya memiliki sub-direktori yang ingin saya sembunyikan dari crawler web mesin pencari.

Salah satu cara untuk melakukan ini adalah dengan menggunakan robots.txtdi direktori root server (cara standar). Namun, siapa pun yang mengetahui URL situs web dan memiliki pengetahuan web dasar dapat mengakses konten robots.txt dan dapat melihat direktori yang tidak diizinkan.

Saya berpikir cara untuk menghindari ini, tetapi saya tidak yakin apakah akan berhasil.

Biarkan Xmenjadi nama sub-direktori yang ingin saya kecualikan. Salah satu cara untuk menghentikan Web crawler mengindeks Xdirektori dan pada saat yang sama untuk membuat lebih sulit bagi seseorang untuk mengidentifikasi Xdirektori dari root robots.txt, adalah untuk menambahkan robots.txtdalam Xdirektori bukan pada direktori root.

Jika saya mengikuti solusi ini, saya memiliki pertanyaan berikut:

  1. Akankah Perayap Web menemukan robots.txtdi dalam sub-direktori? (mengingat itu, robots.txtsudah ada dan di direktori root juga)
  2. Jika robots.txtada di Xsub-direktori, maka apakah saya harus menggunakan jalur relatif atau absolut ?:

    User-agent: *
    Disallow: /X/
    

    atau

    User-agent: *
    Disallow: /
    
Rafael
sumber
2
Saya tidak yakin mengapa Anda ingin menghindari orang membaca direktori Anda yang tidak diizinkan, tetapi jika ada data sensitif maka itu tidak boleh hanya diblokir dari robot tetapi juga dibatasi oleh login atau keamanan lainnya.
Andrew Lott
Bukan itu masalahnya, saya ingin satu pengguna tertentu memiliki akses ke sana (tidak ada yang sensitif dalam hal data, hanya untuk privasi) dan saya ingin tidak mengunci direktori.
Rafael
5
Jika Anda memiliki masalah privasi, maka Anda harus mengamankan data dengan cara lain. Bukan itu tujuan robots.txt.
Andrew Lott

Jawaban:

18

Tidak, perayap web tidak akan membaca atau mematuhi file robots.txt dalam subdirektori. Seperti yang dijelaskan di situs robotstxt.org :

Di mana harus meletakkannya

Jawaban singkat: di direktori tingkat atas dari server web Anda.

atau di halaman bantuan Google ( penekanan saya):

Sebuah robots.txtfile adalah file pada akar situs Anda yang menunjukkan bagian-bagian dari situs Anda, Anda tidak ingin diakses oleh crawler mesin pencari.

Bagaimanapun, menggunakan robots.txt untuk menyembunyikan halaman sensitif dari hasil pencarian adalah ide yang buruk, karena mesin pencari dapat mengindeks halaman yang tidak diizinkan dalam robots.txt jika halaman lain terhubung dengan mereka. Atau, seperti yang dijelaskan pada halaman bantuan Google yang ditautkan di atas:

Anda tidak boleh menggunakan robots.txt sebagai sarana untuk menyembunyikan halaman web Anda dari hasil Google Penelusuran. Ini karena halaman lain mungkin mengarah ke halaman Anda, dan halaman Anda bisa diindeks dengan cara itu, menghindari file robots.txt.

Jadi, apa yang harus Anda lakukan?

  • Anda dapat membiarkan mesin pencari merayapi halaman (jika mereka menemukannya), tetapi menyertakan tag meta robot dengan konten noindex,nofollow. Ini akan memberi tahu mesin pencari untuk tidak mengindeks halaman-halaman itu bahkan jika mereka menemukan tautan ke sana, dan tidak mengikuti tautan lebih lanjut dari halaman-halaman itu. (Tentu saja, ini hanya akan berfungsi untuk halaman web HTML.)

  • Untuk sumber daya non-HTML, Anda dapat mengkonfigurasi server web Anda (misalnya menggunakan .htaccessfile) untuk mengirim header HTTP X-Robots-Tag dengan konten yang sama.

  • Anda dapat mengatur otentikasi kata sandi untuk melindungi halaman sensitif. Selain melindungi halaman dari pengunjung manusia yang tidak sah, itu juga akan secara efektif menjauhkan crawler web.

Ilmari Karonen
sumber
Fantastis, adalah halaman HTML statis, yang dengan menambahkan tag meta akan melakukan trik. Terima kasih.
Rafael
5

Anda robots.txtharus berada di direktori root dan tidak boleh memiliki nama lain. Menurut spesifikasi standar :

File ini harus dapat diakses melalui HTTP di URL lokal "/robots.txt".

Andrew Lott
sumber
Karena itu, perayap web tidak akan mencari direktori lain untuk robots.txt?
Rafael
1
Bukannya aku pernah melihatnya. /robots.txtadalah standar, jadi bagaimana mesin pencari bahkan tahu di mana mencarinya?
Andrew Lott
0

Anda BISA benar-benar menggunakan robots.txt di sub-direktori. Inilah cara kami memperlakukan subdomain bahasa kami. Kami menggunakan 301 redirect dari /robots.txt ke /lang/robots.txt (per sub domain) dan sedang diambil dengan benar.

Ini juga mengambil struktur folder sebagai root yang benar, ketika menggunakan garis miring sederhana. misalnya. larang: /

diperlakukan sebagai melarang semua dan bukan hanya subdirektori saat ini, file {redirected} robots.txt berada.

Tetapi sekali lagi, kami mengarahkan ulang dengan 301 dan memilikinya, jadi tanpa 301, saya ragu itu akan pernah ditemukan ...

Brad
sumber