È possibile forzare/estendere il motore di routing per generare URL in lettere minuscole, fornendo /controller/action
anziché /Controller/Action
?URL minuscoli in ASP.NET MVC
risposta
Sì, basta cambiarlo nel routing nel file global.asax.
@Tutto chiedo se è importante: Sì I do pensa che importi. Avere l'URL tutto in lettere minuscole sembra solo migliore.
Ogni volta che non fai qualcosa di carino quando puoi, Bill Buxton uccide un gattino.
Wow, Bill Buxton è HARSH! – SirDemon
Penso che chiunque sia stato a Mix o ReMix negli ultimi 12 mesi abbia dovuto fare i conti con il brio di Big Billy B (abbastanza interessante) sull'importanza del design che deve essere covato in un prodotto. –
Inoltre, è necessario forzare le richieste in entrata maiuscole per essere reindirizzate alla versione in minuscolo. I motori di ricerca trattano gli URL in maniera sensibile, il che significa che se si dispone di più collegamenti allo stesso contenuto, il ranking della pagina di quel contenuto viene distribuito e quindi diluito.
Restituire HTTP 301 (spostato in modo permanente) per tali collegamenti farà sì che i motori di ricerca "uniscano" questi collegamenti e quindi mantengano solo un riferimento al contenuto.
aggiungere qualcosa di simile al file Global.asax.cs
:
protected void Application_BeginRequest(object sender, EventArgs e)
{
// Don't rewrite requests for content (.png, .css) or scripts (.js)
if (Request.Url.AbsolutePath.Contains("/Content/") ||
Request.Url.AbsolutePath.Contains("/Scripts/"))
return;
// If uppercase chars exist, redirect to a lowercase version
var url = Request.Url.ToString();
if (Regex.IsMatch(url, @"[A-Z]"))
{
Response.Clear();
Response.Status = "301 Moved Permanently";
Response.StatusCode = (int)HttpStatusCode.MovedPermanently;
Response.AddHeader("Location", url.ToLower());
Response.End();
}
}
Si noti che ciò valuterà anche la distinzione tra maiuscole e minuscole dei parametri di query, che potrebbe essere o meno un problema a seconda dell'applicazione (sicuramente per alcune cose su cui ho lavorato). – roryf
Sì, credo di sì. Non sono sicuro se abbia implicazioni SEO o no, ma sembra molto meglio. –