【问题标题】:Moving <httpredirect> out of web.config in separate config file在单独的配置文件中将 <httpredirect> 从 web.config 中移出
【发布时间】:2013-02-27 22:06:04
【问题描述】:

我们的 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 或任何其他最佳解决方案中管理此部分?

【问题讨论】:

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


    【解决方案1】:

    您可以将一些配置元素移动到它们自己的配置文件中,以减少 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>
    

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

    【讨论】:

    • @vikaskumar httpRedirect 属性(尤其是 enabled="true")是否出现在您的外部配置文件中?
    • 它不存在,将其添加到外部文件后它工作。谢谢
    • 这不起作用,我收到错误“configSource 必须单独存在于元素中”
    【解决方案2】:

    您可以将其存储在单独的配置文件中,如下所示:SectionInformation.ConfigSource Property

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

    <httpRedirect configSource="httpRedirects.config" />
    

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

    编辑:

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

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

    【讨论】:

    • 这对我不起作用,我收到错误 "configSource must exist alone in an element"
    猜你喜欢
    • 1970-01-01
    • 2011-05-27
    • 2016-10-22
    • 2011-01-14
    • 1970-01-01
    • 1970-01-01
    • 2011-02-17
    • 2010-12-06
    • 2015-05-29
    相关资源
    最近更新 更多