2015-06-01 11 views
9

Ich habe einen Artikel über das Ignorieren der Roboter von einer URL in meinem ASP MVC.NET-Projekt gelesen. In seinem Artikel sagte Autor, dass wir etwas Action in einigen Offcontrollern wie diesem hinzufügen sollten. In diesem Beispiel fügt er die Aktion auf dem Home-Controller:Robots.txt-Datei in MVC.NET 4

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

dann sollten wir eine Robots.cshtml Datei in unserem Projekt mit diesem Körper

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

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

hinzufügen und schließlich sollten wir diese Codezeile hinzufügen zum Gloabal.asax

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

meine Frage ist, dass es die Controller Roboter kriechen, die [Authorization] wie Administration Attribut hat?

+2

Für diejenigen, die versuchen, den Code oben zu verwenden: es funktioniert, aber Sie müssen aktivieren, dass der Pfad "robots.txt" von MVC-Routen in Ihrer web.conf behandelt wird, siehe: http://stackoverflow.com/a/31871043/466935 – Gerwald

Antwort

7

do Roboter kriechen die Controller, das [Berechtigung] Attribut wie Verwaltung

Wenn sie einen Link, um es zu finden, sind sie wahrscheinlich, es zu versuchen und zu kriechen, aber sie werden nicht wie jeder mit ein Webbrowser, der sich nicht anmeldet. Roboter haben keine spezielle Fähigkeit, anders als ein Standardbrowser auf Ihre Website zuzugreifen.

Beachten Sie, dass Roboter, die auf die Robots Exclusion Standard Crawl die genaue URL entsprechen

http://mydomain/robots.txt

Sie eine Antwort für diese URL erstellen können, wie Sie wollen. Ein Ansatz ist sicherlich, einen Controller zu haben, der diese Anfrage bearbeitet. Sie können auch einfach eine Textdatei mit demselben Inhalt hinzufügen, den Sie von der Steuerung erhalten hätten, z.

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

in den Stammordner Ihres Projekts und stellen Sie sicher, dass es als Inhalt markiert ist, so dass es auf der Website bereitgestellt wird.

Durch das Hinzufügen dieses robots.txt-Eintrags wird verhindert, dass konforme Robots versuchen, Controller zu durchsuchen, die eine Authentifizierung erfordern (und die Belastung auf Ihrer Website etwas verringern). Ohne Robots-Datei wird die URL jedoch nur versucht und fehlgeschlagen.

+0

Kein Kumpel In meiner Frage habe ich erwähnt, dass einige private Controller für Roboter nicht erlaubt sind. Können sie private Controller crawlen, die eine Autorisierung benötigen? –

+0

Nein, sie können nicht, nicht weniger als jemand mit einem Webbrowser kann jede URL crawlen, die eine Autorisierung erfordert. Meine Antwort wurde aktualisiert. –

+0

Danke mein Freund :) –