Frage

Ich bin mit http://urlrewriter.net/ Urls auf meiner Website neu zu schreiben. Zum Beispiel, ich bin Umschreiben:

  

http://www.example.com/schedule.aspx?state=ca

  

http://www.example.com/california.aspx

Was ich versuche (für SEO Zwecke) zu tun, um dynamisch den Meta-Tag hinzu:

<meta name="robots" content="noindex,follow" />

nur auf der Seite, die nicht wurde neu geschrieben. Das ist, weil ich beide URLs arbeiten will, sondern nur das neu geschrieben man von Suchmaschinen indiziert werden.

Wie kann ich feststellen, welche Version der Seite angefordert wurde?

Bearbeiten

unten Antworten deuten auf eine 301-Weiterleitung anstelle eines Meta-Tags zu verwenden. Vielleicht würde ich tun, aber ich will noch die Antwort auf die grundlegende Frage wissen, ... wie kann ich wissen, ob die Seite neu geschrieben wurde?

War es hilfreich?

Lösung

persönlich, ich würde 301 umleiten von der un-neu geschrieben ein in die neu geschrieben ein, und nur die einzelne Kopie der Webseite. Es ist einfacher für die Benutzer, und von einer SEO Perspektive, die Sie haben 1 Kopie des Inhalts.

Andere Tipps

Wenn Sie dies tun müssen, können Sie wahrscheinlich so etwas wie:

<add header="X-WasRewritten" value="true" />

Und Sie können aus Ihrer Sicht für den Header überprüfen und die Roboter-Meta-Tag hinzufügen, wenn Sie es brauchen.

Dies wird erhalten zurückgegeben auch an den Client, so dass, wenn Sie ausblenden möchten, dass Sie ein Custom schreiben kann ( http://urlrewriter.net/index.php/support/reference/actions/custom-action ), die eine Art Zustandswert in Ihrer Anfrage eingestellt wird.

Allerdings mit zwei URIs für die gleiche Ressource ist etwas, was ich nicht empfehlen würde. Ich schlage vor, Sie halten nur die eine Vertretung. Wenn Sie sich über entkräften alten Lesezeichen besorgt sind, können Sie den alten auf die neue umgeleitet werden.

Im Anschluss an chakrit Antwort, es sieht aus wie UrlRewriter.NET die ursprüngliche URL in der Httpcontext speichert, in einem Schlüssel namens UrlRewriter.NET.RawUrl . Also, könnten Sie versuchen, so etwas wie:

bool isPageRewritten = 
   !string.IsNullOrEmpty(HttpContext.Current.Items["UrlRewriter.NET.RawUrl"]);

naheliegendste Methode ist es, das Request.Url Objekt in Ihrer Seite zu verwenden, um Informationen über die URL und Query-String zu erhalten. Zum Beispiel:

if (Path.GetFileName(Request.Url.FilePath) == "schedule.aspx")
   //Not rewritten
else
   //rewritten

Ich denke, das ist die Aufgabe von HttpContext.Current .Items .

Sie können die „Umleitung“ in HttpContext.Current.Items speichern und dann in Ihren Seiten, können Sie es für einen bestimmten Mehrwert überprüfen.

Ich glaube, Sie Haken hinzufügen können, um urlrewriter.net, dass es tun könnte, etwas alongs:

HttpContext.Current.Items["Redirected_From"] = currentUrlHere;

Und dann in Ihre Webseiten, könnten Sie es überprüfen, indem Sie:

if (!string.IsNullOrEmpty(HttpContext.Current.Items["Redirected_From"]))
    // the page's been redirected, do something!
else
    // no it's visited normally.

Ich habe lange, da sie links für das Framework ASP.NET-Routing in .NET 3.5 SP1, ist es besser als urlrewriter.net IMO.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top