IIS 7:将所有请求重定向到Default.aspx

时间:2009-04-13 20:36:36

标签: asp.net iis iis-7

我们希望将ASP.NET站点中的所有请求重定向到〜/ Default.aspx以关闭该站点。我们正在使用IIS7。该网站有这样的路径返回页面:

http://test.com/operating

我们正在使用网址重写。我们希望类似的请求被重定向到〜/ Default.aspx

http://test.com/ / http://test.com/ 的.aspx http://test.com/ / 的.aspx

我们会在web.config中使用类似的东西:

    <customErrors mode="On" defaultRedirect="Default.aspx">
        <error statusCode="404" redirect="Default.aspx" />
    </customErrors>

问题在于它不会像这样重定向文件夹网址

http://test.com/ * /

谢谢!

4 个答案:

答案 0 :(得分:3)

您可以将名为App_Offline.htm的文件放在任何ASP.NET应用程序的根目录中。这导致获取任何.NET页面请求并输出htm文件的内容而不是请求的页面。它实际上不是重定向,但它是一个非常简单的方法来整个网站。如果需要,您还可以使用标准元刷新将任何请求发送到新位置(请记住不要对同一站点中的ASPX文件执行此操作)。

答案 1 :(得分:2)

你试过HttpRedirect吗? 您必须首先安装该功能。

答案 2 :(得分:0)

如果不再存在文件,您可以执行此操作。

  <system.webServer>
    <httpErrors errorMode="Custom">
        <remove statusCode="404" subStatusCode="-1" />
        <error statusCode="404" prefixLanguageFilePath="" path="/Default.aspx" responseMode="ExecuteURL" />
    </httpErrors>

答案 3 :(得分:0)

我会在Global.asax中写这样的东西(请注意,这只是一个例子,而不是生产就绪的代码):

Application_BeginRequest(object sender, EventArgs e) {
    if(!Request.Url.ToString().ToLowerInvariant().Contains("default.aspx")) {
        Response.Redirect("Default.aspx");
    }
}

还要考虑当应用程序在集成模式下运行时,此代码将破坏非ASP.NET请求(在其他情况下,它将重定向甚至是图像请求等)。