IIS7和永久重定向使用web.config中的位置标记

时间:2011-12-14 23:37:16

标签: c# asp.net redirect iis-7 web-config

我需要在IIS7下运行的ASP.NET应用程序的web.config中设置一些301永久重定向。

<configuration>
  <location path="services.htm">
    <system.webServer>
      <httpRedirect enabled="true" destination="default.aspx" httpResponseStatus="Permanent" />
    </system.webServer>
  </location>
  <location path="products.htm">
    <system.webServer>
      <httpRedirect enabled="true" destination="default.aspx" httpResponseStatus="Permanent" />
    </system.webServer>
  </location>
</configuration>

我重定向的所有页面都会重定向到主页 - 是否有更快速和/或更简单的方法来执行此操作,因为我需要重定向到default.aspx超过10个页面?我可以为10个页面中的每个页面指定一个位置部分,但希望采用更简洁的方法。

3 个答案:

答案 0 :(得分:0)

您可以将.htm设置为由ASP.NET库处理(默认情况下与.aspx相同),然后查看global.ascx中Application_BeginRequest中的请求,并在适当时重定向。

它比Web.config中的一两个重定向要多一些,但在一定量之后变得更容易。

答案 1 :(得分:0)

将网页逐个输入web.config的替代方法是创建HttpModule。在集成模式下使用IIS7 +时,默认情况下HttpModules将针对所有内容运行,包括静态文件。

要在代码中进行重定向,请在早期事件中调用HttpResponse.RedirectPermanent(string url, bool endResponse)。为获得最佳性能,请设置endResponse = true。

答案 2 :(得分:0)

我建议你使用IIS URL Rewrite模块。

这是一个官方模块,你可以在这里下载: http://www.iis.net/download/urlrewrite

这个模块就像一把瑞士军刀,可用于所有URL重定向或重写需求。