2008-09-04 13 views
18

Dire che ho un sito su http://example.com. Mi piacerebbe molto che i bot potessero vedere la home page, ma ogni altra pagina deve essere bloccata in quanto inutile per lo spider. In altre paroleCome impostare un robot.txt che consente solo la pagina predefinita di un sito

http://example.com & http://example.com/ dovrebbero essere autorizzati, ma http://example.com/anything e http://example.com/someendpoint.aspx devono essere bloccate.

Inoltre sarebbe bello se mi posso permettere alcune stringhe di query al passthrough alla home page: http://example.com?okparam=true

ma non http://example.com?anythingbutokparam=true

risposta

43

Così, dopo alcune ricerche, qui è quello che ho trovato - una soluzione accettabile da parte dei principali provider di ricerca: google, yahoo & msn (potrei su trovare un validatore qui):

User-Agent: * 
Disallow: /* 
Allow: /?okparam= 
Allow: /$ 

Il trucco sta usando il $ per segnare la fine dell'URL.

0

robots.txt base:

Disallow: /subdir/ 

I non pensare di poter creare un'espressione che dice "tutto tranne la radice", devi compilare tutte le sottodirectory.

La limitazione della stringa di query non è inoltre possibile da robots.txt. Devi farlo nel codice di background (la parte di elaborazione), o forse con le regole di riscrittura del server.

0
Disallow: * 
Allow: index.ext 

Se ricordo correttamente, la seconda clausola dovrebbe ignorare la prima.

1

Google's Webmaster Tools il report che non autorizza ha sempre la precedenza su allow, quindi non esiste un modo semplice per farlo in un file robots.txt.

È possibile eseguire questa operazione inserendo un tag noindex,nofollowMETA nell'HTML ogni pagina tranne la pagina iniziale.

0

Per quanto ne so, non tutti i crawler supportano il tag Allow. Una possibile soluzione potrebbe essere quella di mettere tutto tranne la home page in un'altra cartella e disabilitare quella cartella.