从请求中删除default.aspx

时间:2010-05-30 16:02:00

标签: c# asp.net request

我正在尝试从任何可能拥有它的请求中删除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 个答案:

答案 0 :(得分:3)

k得到了它。

而不是使用:

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

我试过了:

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

和那个有效!和你们所说的一样:)

答案 1 :(得分:1)

我认为,如果您将重定向放在内部,如果您不必处理无限重定向。

答案 2 :(得分:1)

你无休止地重定向。

每次执行以下行时,都会再次触发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);
}