2015-06-01 16 views
9

Ho letto un articolo sull'ignorare i robot da qualche URL nel mio progetto ASP MVC.NET. Nel suo articolo l'autore ha detto che dovremmo aggiungere qualche azione in alcuni controller off come questo. In questo esempio, aggiunge l'azione al controller di casa:File robots.txt in MVC.NET 4

#region -- Robots() Method -- 
public ActionResult Robots() 
{ 
    Response.ContentType = "text/plain"; 
    return View(); 
} 
#endregion 

allora dovremmo aggiungere un file Robots.cshtml nel nostro progetto con questo corpo

@{ 
    Layout = null; 
} 
# robots.txt for @this.Request.Url.Host 

User-agent: * 
Disallow: /Administration/ 
Disallow: /Account/ 

e, infine, dovremmo aggiungere questa riga di codice al Gloabal.asax

routes.MapRoute("Robots.txt", 
       "robots.txt", 
       new { controller = "Home", action = "Robots" }); 

la mia domanda è che i robot eseguono la scansione del controller, che ha [Autorizzazione] attribuire come Administration?

+2

Per coloro che cercano di utilizzare il codice sopra: funziona, ma è necessario attivare il percorso "robots.txt" gestito da percorsi MVC nel proprio web.conf, consultare: http://stackoverflow.com/a/31871043/466935 – Gerwald

risposta

7

fanno robot strisciare i controllori che ha [Autorizzazione] attributo come Amministrazione

Se trovano un link ad esso, che sono suscettibili di provare a strisciare, ma falliranno proprio come chiunque con un browser web che non effettua l'accesso. I robot non hanno alcuna possibilità speciale di accedere al tuo sito web in modo diverso rispetto a un browser standard.

Nota che i robot conformi alla Robots Exclusion Standard strisciare l'URL esatto

http://mydomain/robots.txt

È possibile creare una risposta per questo URL come più vi piace. Un approccio è sicuramente quello di avere un controller che gestisca quella richiesta. Puoi anche aggiungere un file di testo con lo stesso contenuto che avresti restituito dal controller, ad es.

User-agent: * 
Disallow: /Administration/ 
Disallow: /Account/ 

alla cartella principale del progetto e assicurarsi che sia contrassegnato come contenuto in modo che viene distribuito al sito.

L'aggiunta di questa voce robots.txt impedirà ai robot conformi di tentare di esplorare i controller che richiedono l'autenticazione (e di alleggerire leggermente il carico sul proprio sito Web), ma senza il file robots proveranno semplicemente l'URL e falliranno.

+0

Nessun amico Nella mia domanda ho menzionato il fatto che alcuni controller privati ​​non consentiti per i robot. Possono eseguire la scansione dei controller privati ​​che necessitano di autorizzazione? –

+0

No, non è possibile, non meno di qualcuno con un browser Web in grado di eseguire la scansione di qualsiasi URL che richiede l'autorizzazione. Aggiornato la mia risposta. –

+0

Grazie amico mio :) –