2014-11-08 7 views
5

Ich bin in der Verwendung 301 Weiterleitungen, die eine Reihe von Treffern auf meiner Domain in Google Analytics zu ASP-Seiten bemerkt, die nicht mehr vorhanden sind, nachdem alles auf eine .NET verschoben Konfiguration.301 Redirect in ASP.NET web.config einschließlich Parameter

Nach ein wenig Zeit Googeln konnte ich den folgenden Code zu meiner web.config hinzufügen.

<location path="products.asp"> 
    <system.webServer> 
    <httpRedirect enabled="true" destination="https://www.hartnollguitars.co.uk/products.aspx" httpResponseStatus="Permanent" /> 
    </system.webServer> 
</location> 

Das ist gut und bewegt sich alles products.asp-pproducts.aspx aber es erhalten nicht die Abfragezeichenfolgeflag, die keinen Sinn machen wesentlich ist, dh products.aspx?id=789

Antwort

8

Sie müssen die Ziel-URL $Q hinzufügen, um die Abfragezeichenfolge beizubehalten. Also in Ihrem Fall sollte es so aussehen:

<location path="products.asp"> 
    <system.webServer> 
    <httpRedirect enabled="true" destination="https://www.hartnollguitars.co.uk/products.aspx$Q" httpResponseStatus="Permanent" /> 
    </system.webServer> 
</location> 
+1

Schön, danke! :) –

0

Wenn Sie IIS 7 oder mehr haben, gibt es eine weitaus robustere Lösung für URL-Umschreibungen. Mithilfe der URL Rewrite Module 2.0 können Sie Rich-Weiterleitungen erstellen, die die ursprüngliche Abfragezeichenfolge enthalten können. Nach diesem guide on IIS.net, können Sie auf dem Screenshot die Option "Abfrage String hinzufügen" sehen. IIS URL Rewrite Module UI

Sie können auch die Servervariable {QUERY_STRING} verwenden. Wenn Sie einen Regex mit Gruppen im Muster Ihrer Regel verwendet haben, können Sie auch die Variablen {R: #} verwenden, wie im Screenshot gezeigt.

+0

Dank Adam, aber ich bin auf einem Anteil Server so habe nicht vollen Zugriff. –