我需要在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个页面中的每个页面指定一个位置部分,但希望采用更简洁的方法。
答案 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重定向或重写需求。