301 цикл перенаправления - как установить ограничение на перенаправления - PullRequest
1 голос
/ 03 июня 2019

Я работаю на веб-сайте MVC, где я должен перенаправить все URL-адреса в определенный формат по причинам SEO и аналитики.У меня есть несколько URL-адресов, связанных с другими процессами, запущенными на сервере (я не уверен на 100%, как они настроены, поскольку я не работал с ними), но они должны быть частично прописными, например, www.mysite.com/WebPage в противном случаеони не работают и вынуждены перенаправлять на верхний регистр.Это тогда вызывает цикл перенаправления, где код, реализованный в Global.asax, перенаправляет в нижний регистр, который затем перенаправляется в верхний регистр, и обратно в нижний регистр и так далее.Я использую .net 4, а не 4.5, поэтому, к сожалению, я не могу использовать System.Web.Routing, чтобы попытаться решить эту проблему.

В настоящее время я внедрил некоторые фильтры, которые позволяют игнорировать эти URL, но янужно вручную определить URL, и я знаю, что я не знаю всех из них.

Код, который у меня есть в моем Global.asax, выглядит следующим образом:

protected void Application_BeginRequest(object sender, EventArgs e)
{
    var path = requested.URL.AbsolutePath.ToLower();
    if (path.Contains(//Filtered URLs)
    return;

    var url = Request.Url.ToString();
    Response.Clear();
    Response.Status = "301 Moved Permanently";
    Response.StatusCode = (int)HttpStatusCode.MovedPermanently;
    Response.AddHeader("Location", url.ToLower());
    Response.End();
}

Я надеюсь установить ограничение на количество перенаправлений до 5 или около того, так чтозапрошенный URL больше не отправляется в нижнем регистре, когда он должен быть в верхнем регистре.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...