удалить default.aspx из запроса - PullRequest
3 голосов
/ 30 мая 2010

Я пытаюсь удалить default.aspx из любого запроса, который может иметь его.

protected void Application_BeginRequest(object sender, EventArgs e)
        {
            HttpContext context = HttpContext.Current;
            string url = context.Request.Url.ToString();

            // remove default.aspx
            if (url.EndsWith("/default.aspx", StringComparison.OrdinalIgnoreCase))
            {
                url = url.Substring(0, url.Length - 12);
                context.Response.Redirect(url);
            }

        }

выдает ошибку:

**too many redirects occurred trying to open...**

что я могу изменить, чтобы заставить его работать?

Thnx

Ответы [ 3 ]

3 голосов
/ 30 мая 2010

k получил.

вместо использования:

string url = context.Request.Url.ToString();

я попробовал:

string url = context.Request.RawUrl.ToString();

и это работает! вместе с тем, что вы, ребята, сказали:)

1 голос
/ 30 мая 2010

Вы бесконечно перенаправляете.

Каждый раз, когда выполняется следующая строка, событие Application_BeginRequest снова запускается.

context.Response.Redirect(url);

Поместите перенаправление внутри оператора if следующим образом.

if (url.EndsWith("/default.aspx", StringComparison.OrdinalIgnoreCase))
{
    url = url.Substring(0, url.Length - 12);
    context.Response.Redirect(url);
}
1 голос
/ 30 мая 2010

Я думаю, что если вы поместите перенаправление внутрь, если вам не придется иметь дело с бесконечными перенаправлениями.

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