Czy plik robots.txt może znajdować się w podkatalogu serwera?

16

Mam podkatalog, który chciałbym ukryć przed robotami indeksującymi wyszukiwarki.

Jednym ze sposobów jest skorzystanie robots.txtz katalogu głównego serwera (standardowy sposób). Jednak każdy, kto zna adres URL witryny i ma podstawową wiedzę o sieci, może uzyskać dostęp do zawartości pliku robots.txt i dostrzec niedozwolone katalogi.

Pomyślałem, jak tego uniknąć, ale nie jestem pewien, czy zadziała.

Niech Xbędzie nazwą podkatalogu, który chcę wykluczyć. Jednym ze sposobów, aby zatrzymać indeksujące indeksowania Xkatalogu i jednocześnie, aby trudniej kogoś do zidentyfikowania Xkatalog z korzenia robots.txt, jest dodanie robots.txtw Xkatalogu zamiast katalogu głównego.

Jeśli zastosuję się do tego rozwiązania, mam następujące pytania:

  1. Czy roboty indeksujące znajdą to robots.txtw podkatalogu? (biorąc pod uwagę, że robots.txtjuż istnieje, a także w katalogu głównym)
  2. Jeśli robots.txtznajduje się w Xpodkatalogu, to czy powinienem używać ścieżek względnych czy bezwzględnych ?:

    User-agent: *
    Disallow: /X/
    

    lub

    User-agent: *
    Disallow: /
    
Rafael
źródło
2
Nie jestem pewien, dlaczego chcesz unikać osób czytających niedozwolone katalogi, ale jeśli istnieją poufne dane, nie powinny one być po prostu blokowane przed robotami, ale także ograniczone przez logowanie lub inne zabezpieczenia.
Andrew Lott,
Tak nie jest, chciałbym, aby jeden konkretny użytkownik miał do niego dostęp (nic wrażliwego pod względem danych, tylko ze względu na prywatność) i nie chciałbym blokować katalogu.
Rafael
5
Jeśli masz obawy dotyczące prywatności, powinieneś zabezpieczyć dane w inny sposób. Nie po to jest plik robots.txt.
Andrew Lott,

Odpowiedzi:

18

Nie, roboty indeksujące nie będą czytać ani wykonywać pliku robots.txt w podkatalogu. Jak opisano na quasi-oficjalnej stronie robotstxt.org :

Gdzie to położyć

Krótka odpowiedź: w katalogu najwyższego poziomu serwera WWW.

lub na stronach pomocy Google ( podkreślenie moje):

robots.txtJest to plik w katalogu głównym witryny , który wskazuje te części witryny nie ma dostępu przez roboty wyszukiwarek.

W każdym razie użycie robots.txt do ukrycia poufnych stron przed wynikami wyszukiwania jest złym pomysłem, ponieważ wyszukiwarki mogą indeksować strony niedozwolone w robots.txt, jeśli prowadzą do nich inne strony. Lub, jak opisano na stronie pomocy Google, do której link znajduje się powyżej:

Nie należy używać robots.txt jako środka do ukrywania stron internetowych przed wynikami wyszukiwania Google. Wynika to z faktu, że inne strony mogą wskazywać na twoją stronę, a twoja strona może zostać zindeksowana w ten sposób, unikając pliku robots.txt.

Co więc powinieneś zrobić zamiast tego?

  • Możesz zezwolić wyszukiwarkom na indeksowanie stron (jeśli je znajdą), ale dołączając do treści metatag robotanoindex,nofollow . Dzięki temu wyszukiwarki nie będą indeksować tych stron, nawet jeśli znajdą do nich linki, i nie będą podążać za dalszymi linkami z tych stron. (Oczywiście będzie to działać tylko w przypadku stron HTML).

  • W przypadku zasobów innych niż HTML możesz skonfigurować serwer WWW (np. Używając .htaccesspliku), aby wysyłał nagłówek HTTP X-Robots-Tag o tej samej treści.

  • Możesz skonfigurować uwierzytelnianie hasłem, aby chronić wrażliwe strony. Oprócz ochrony stron przed nieupoważnionymi gośćmi, skutecznie powstrzyma również roboty indeksujące.

Ilmari Karonen
źródło
Fantastyczne, to statyczna strona HTML, która dodając metatag, załatwi sprawę. Dziękuję Ci.
Rafael
5

Twój robots.txtpowinien znajdować się w katalogu głównym i nie powinien mieć żadnej innej nazwy. Zgodnie ze standardową specyfikacją :

Ten plik musi być dostępny przez HTTP pod lokalnym adresem URL „/robots.txt”.

Andrew Lott
źródło
To powiedziawszy, roboty indeksujące nie będą szukać innego katalogu dla robots.txt?
Rafael
1
Nie, że kiedykolwiek widziałem. /robots.txtjest standardem, więc w jaki sposób wyszukiwarki mogłyby wiedzieć, gdzie szukać inaczej?
Andrew Lott
0

W rzeczywistości MOŻESZ użyć pliku robots.txt w podkatalogu. W ten sposób traktujemy nasze poddomeny językowe. Używamy przekierowania 301 z /robots.txt do /lang/robots.txt (na subdomenę) i jest on poprawnie pobierany.

Podnosi również strukturę folderów jako prawidłowy katalog główny, gdy używasz prostego ukośnika. na przykład. zabronić: /

jest traktowany jako blokowanie wszystkiego, a nie tylko bieżącego podkatalogu, w którym znajduje się plik robots.txt {redirected}.

Ale ponownie przekierowujemy za pomocą 301 i mamy to na swoim miejscu, więc bez 301 wątpię, by kiedykolwiek się znalazł ...

Ćwiek
źródło