IIS 7:将所有请求重定向到Default.aspx
问题描述:
我们希望将ASP.NET网站中的所有请求重定向到〜/ Default.aspx以关闭该网站。我们正在使用IIS7。该网站有这样的路径返回的页面:IIS 7:将所有请求重定向到Default.aspx
我们正在使用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>
这里的问题是,它不会重定向文件夹的网址这样
谢谢!
答
如果没有文件存在,你可以这样做。
<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请求当应用程序在集成模式下运行时(在其他情况下,它甚至会重定向对图像等的请求)。
是的,它帮助感谢!但是你不能重定向到同一个域,或者它会做无限重定向。但除此之外,它的工作!谢谢 – EtienneT 2009-04-14 14:56:32