2012-04-02 19 views
1

ich in meiner Global.asax Datei des folgenden Code bin mit für url-Rewriting:301 umleiten ursprüngliche URL-Anfrage weitergeleitet URL

routes.MapRoute(
       "BlogArticle", 
       "Blog/Article/{filename}", 
       new { controller = "Blog", action = "Article" } 
       ); 

Das bedeutet, die folgende URL:

/Blog/Artikel/Blog-Artikel-Titel

wird die folgende Aktion laden:

/Blog/Artikel? Filename = Blog-Artikel-Titel

ich, dass der ursprüngliche URL-Pfad meiner Seite geladen wird noch bemerkt habe.

Dies könnte zu Problemen führen, wenn das Umschreiben der URL der Website Monate nach dem Start der Website hinzugefügt wurde. Google hat die ursprünglichen URLs bereits gecrawlt. Wenn nun die neuen URLs auf der Website gecrawlt werden, wird dies als duplicate content eingestuft.

Ich dachte, dass die ursprüngliche URL jetzt automatisch eine Umleitung auf die neu geschriebene URL, aber es tut nicht.

Ich denke es würde Sinn machen, dass so etwas in den Kern von ASP.NET MVC eingebaut wird, da ich keinen Vorteil sehe, dass die ursprüngliche URL noch verfügbar ist und nicht an die neu geschriebene URL weitergeleitet wird . Gibt es einen Grund, warum das nicht gemacht wurde?

Wie kann ich verhindern, dass die ursprüngliche URL den Inhalt lädt? Gibt es einen Weg, wie ich es zu 301 permanent redirect zu der neu geschriebenen URL bekommen kann?

Antwort

1
routes.MapRoute(
       "BlogArticle", 
       "Blog/Article/{filename}", 
       new { controller = "Blog", action = "Article" } 
       ); 

versuchen, dies für sauberere URL und dann fordern Sie Dateinamen als Parameter in Ihrer Aktion

routes.MapRoute(
      "BlogArticle", 
      "Blog/Article/{filename}", 
      new { controller = "Blog", action = "Article", filename = UrlParameter.Optional} 
      ); 
+0

Ist das das Problem von mehreren URLs für denselben Inhalt lösen, oder ist dies hilft mir nur den Code aufgeräumt? – Curt

+0

Mabye Ich mississibod Ihre Frage, dies hilft Ihnen, eine sauberere URL zu erhalten, wenn Sie diese Route mehr als eine Aktion behandeln möchten, die Sie "Blog/{Article}/{Dateiname}", neu haben könnten. – mattematico