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

问题描述:

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

http://test.com/operating

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

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

我们会normaly使用这样的web.config中:

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

这里的问题是,它不会重定向文件夹的网址这样

http://test.com/ */

谢谢!

你试过HttpRedirect? 尽管您必须先安装该功能。

+0

是的,它帮助感谢!但是你不能重定向到同一个域,或者它会做无限重定向。但除此之外,它的工作!谢谢 – EtienneT 2009-04-14 14:56:32

如果没有文件存在,你可以这样做。

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

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

我会写这样的事情在Global.asax中(请注意,这只是一个例子,而不是产品代码):

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

同时认为,该代码将打破non-ASP.NET请求当应用程序在集成模式下运行时(在其他情况下,它甚至会重定向对图像等的请求)。