我们希望将ASP.NET站点中的所有请求重定向到〜/ Default.aspx以关闭该站点。我们正在使用IIS7。该网站有这样的路径返回页面:
我们正在使用网址重写。我们希望类似的请求被重定向到〜/ 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/ * /
谢谢!
答案 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请求(在其他情况下,它将重定向甚至是图像请求等)。