Domanda

Volevo sapere se esiste una soluzione che utilizza IIS6 per un'applicazione per eliminare il testo default.aspx nell'URL. quindi, ad esempio, se un utente colpisce:

www.website.com/default.aspx

il browser mostra solo:

www.website.com /

Non importa cosa. È solo per SEO.

Uso già UrlRewriting.NET per alcune riscritture nella mia app, ma non sono così intelligente da creare una regola per questo.

Qualsiasi aiuto è molto apprezzato.

Grazie. Jose

È stato utile?

Soluzione

Se hai qualcosa da fare per riscrivere l'URL, allora tutto ciò che devi fare è assicurarti che i tuoi collegamenti puntino all'URL corretto.

Se non risolvi i tuoi collegamenti, spetta al browser decidere se desidera visualizzare il collegamento effettivo richiesto.

Se vuoi davvero fare un lavoro complicato, puoi usare un po 'di javascript per fare in modo che la barra degli indirizzi del browser mostri quello che ti piace, anche se non è valido.

Altri suggerimenti

Penso che ScottGu abbia già trattato l'argomento della riscrittura in ASP.NET: http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net. aspx .

Copre cose come:

  • Riscrittura tramite UrlRewriter.net, ISAPI Rewrite
  • Trucchi ASP.NET, posting back (colpendo la versione amichevole dell'URL)

Con il tuo problema penso che tu debba usare una combinazione di, non collegarti mai a 'default.aspx', ad es. Link SOLO a '/'. Quindi utilizzare il file del browser Scott Post Post per assicurarsi che i postback abbiano sempre la stessa versione amichevole dell'URL.

Il reindirizzamento di "default.aspx" su "/", che viene quindi servito da "default.aspx" suona come una ricetta per il disastro per me. Basta correggere i collegamenti per assicurarsi di non finire mai su "default.aspx" in modo esplicito.

Penso che il modo più semplice per modificare l'indice dei risultati della ricerca (supponendo che sia a conoscenza di HTTP 301) sia scrivere una piccola funzione nella pagina_Load di default.aspx che reindirizzi il browser usando un 301 spostato in modo permanente (o 302 spostato temporaneamente).

void Page_Load(...) {

    if(Request.Path.EndsWith("default.aspx", true/*case-insensitive*/, null)) {
       Response.StatusCode = 301;
       Response.StatusDescription = "Moved Permanently";
       Response.Headers.Add("Location", "/");
       HttpContext.Current.ApplicationInstance.CompleteRequest(); // end the request
    }

    // do normal stuff here
}

Se default.aspx è impostato come documento predefinito da pubblicare in IIS e tutti i collegamenti al tuo sito interno contengono l'URL senza default.aspx, penso che dovrebbe fare il trucco.

Sebbene l'utente possa comunque digitare default.aspx , gli spider dei motori di ricerca dovrebbero semplicemente prendere gli URL più amichevoli dagli attributi href del tuo link.

Il modo in cui lo farei è utilizzare Application_BeginRequest nella classe pubblica Global: System.Web.HttpApplication e controllare HttpContext.Current.Request.URL per default.aspx, quindi utilizzare HttpContext.Current.Response.Redirect da lì se lo trovi.

Il rovescio della medaglia sta avendo un reindirizzamento non è sempre così grande e questo non funzionerà se pubblichi dati in quella pagina default.aspx. Ma non puoi semplicemente indurre il browser a mostrare un URL diverso, anche se puoi dire ad ASP.NET di pubblicare la pagina che desideri per qualsiasi richiesta.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top