【问题标题】:IIS 7: Redirect all request to Default.aspxIIS 7:将所有请求重定向到 Default.aspx
【发布时间】:2010-10-19 05:17:48
【问题描述】:

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

http://test.com/operating

我们正在使用 url 重写。我们希望将类似的请求重定向到 ~/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>

这样做的问题是它不会像这样重定向文件夹 url

http://test.com/*/

谢谢!

【问题讨论】:

    标签: asp.net iis iis-7


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 是的,谢谢!但是您不能重定向到同一个域,否则它将进行无限重定向。但除此之外它还有效!谢谢
      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

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

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-08-12
          • 1970-01-01
          • 2013-02-15
          • 2016-10-23
          • 1970-01-01
          • 2017-12-19
          • 2012-12-17
          • 2013-11-26
          相关资源
          最近更新 更多