在单独的配置文件</httpredirect>中将<httpredirect>移出web.config

时间:2013-03-12 11:53:38

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

我们的web.config中有很多(超过100个)重定向,如

<configuration>
   <system.webServer>
      <httpRedirect enabled="true" exactDestination="true" httpResponseStatus="Found">
         <add wildcard="/a" destination="/a/dfdf/default.htm" />
         <add wildcard="/sad" destination="/aasd/dfdf/defsadault.htm" />
         <add wildcard="/asdsaa" destination="/aasdas/dfasddf/default.htm" />
         <add wildcard="/aasdsa" destination="/asdsaa/dfdf/defsdault.htm" />
         <add wildcard="/aasd" destination="/adsa/dfdf/default.htm" />
..... more than 100
      </httpRedirect>
   </system.webServer>
</configuration>

我们是否可以在单独的web.config或任何其他最佳解决方案中管理此部分?

2 个答案:

答案 0 :(得分:4)

您可以将一些配置元素移动到自己的配置文件中,以减少web.config中的混乱。

<configuration>
   <system.webServer>
      <httpRedirect configSource="httpRedirects.config" />
   </system.webServer>
</configuration>

这是通过添加如上所示的configSource属性来实现的。

在单独的httpRedirects.config

<httpRedirect enabled="true" exactDestination="true" httpResponseStatus="Found">
     <add wildcard="/a" destination="/a/dfdf/default.htm" />
     <add wildcard="/sad" destination="/aasd/dfdf/defsadault.htm" />
     <add wildcard="/asdsaa" destination="/aasdas/dfasddf/default.htm" />
     <add wildcard="/aasdsa" destination="/asdsaa/dfdf/defsdault.htm" />
     <add wildcard="/aasd" destination="/adsa/dfdf/default.htm" />
</httpRedirect>

注意我只尝试过其他配置元素。

答案 1 :(得分:1)

您可以将其存储在Separate Config文件中,如下所示:SectionInformation.ConfigSource Property

为了避免使配置文件混乱 - web.config - 可以在单独的配置文件中定义它。然后可以从web.config文件中引用该文件,如下所示:

<httpRedirect configSource="httpRedirects.config" />

configSource属性告诉IIS配置<httpRedirect>部分是在单独的文件httpRedirects.config中定义的。

编辑:

请确保您将httpRedirect属性设置为enabled=true ,默认值为false。

<httpRedirect enabled="true" configSource="httpRedirects.config" />