2014-11-08 27 views
5

Sto cercando di utilizzare reindirizzamenti 301 avendo notato un sacco di successi sul mio dominio su Google Analytics alle pagine .asp che non esistono più avendo spostato tutto su un .NET. impostare.301 Reindirizzare in ASP.NET web.config compresi i parametri

Avendo trascorso un po 'di tempo su Google, sono stato in grado di aggiungere il seguente codice al mio web.config.

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

Questo va bene e si muove tutto products.asp-pproducts.aspx ma non conserva il querystring, che è essenziale per avere un senso, vale a dire products.aspx?id=789

risposta

8

È necessario aggiungere $Q all'URL di destinazione per conservare la Querystring. Quindi nel tuo caso si dovrebbe presentarsi così:

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

Bello, grazie! :) –

0

Se si dispone di IIS 7 o superiore, v'è una soluzione molto più robusta per le riscritture di URL. Utilizzando URL Rewrite Module 2.0, è possibile creare reindirizzamenti avanzati che possono includere la stringa di query originale. Dopo questo guide on IIS.net, è possibile vedere nell'immagine l'opzione "Aggiungi query stringa". IIS URL Rewrite Module UI

Hai anche la possibilità di utilizzare la variabile del server {QUERY_STRING}. Infine, se hai usato un Regex con gruppi nel pattern della tua regola, puoi usare le variabili {R: #} come mostrato nello screenshot.

+0

Grazie Adam, ma sono su un server di condivisione in modo da non avere accesso completo. –

Problemi correlati