繁体   English   中英

IIS 7 URL重写模块web.config部分C#

[英]IIS 7 URL rewrite module web.config section c#

我们使用带有ASP.NET C#的IIS7 URL重写模块,所有URL都已配置并直接写入web.config:

<system.webServer>
    <!-- ... -->
    <rewrite>
        <rules>
            <clear />
            <rule name="Category URL" stopProcessing="true">
                <match url="somepage.aspx" ignoreCase="false"/>
                <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
                    <add input="{QUERY_STRING}" pattern="REDIRECTION=true"
                         ignoreCase="false"/>
                    <add input="{QUERY_STRING}" pattern="categoryid=([^&amp;]*)"/>
                </conditions>
                <action type="Redirect" url="http://{HTTP_HOST}/browsing/categorylanding.aspx?navcategoryid={C:1}"/>
            </rule>
        </rules>
    </rewrite>
 </system.webServer>

我需要将其移至某个部分,以便为QA,DEV和生产制定单独的规则,在该部分中定义的“类型”是什么?

<configSections>
    <section name="IISURLRewriteSection" type="???"/>
</configSections>

从web.config移到另一个自定义配置文件后,IIS是否会自动选择这些设置?

最好的解决方案,恕我直言,是将配置详细信息移到外部文件中,然后您可以根据环境交换出去。

使用将IIS7 URL重写部分从Web.config文件移出所述的方法,这很容易做到,在Web.config文件中将具有以下内容:

<system.webServer>
    <rewrite configSource="rewrite.config"/>
</system.webServer>

然后,您可以将特定于环境的内容存储在单独的文件rewrite.config ,如下所示:

<rewrite>
    <rules>
        <clear />
        <rule name="Category URL" stopProcessing="true">
            <!-- ... --->
        </rule>
    </rules>
</rewrite>

我们之所以要编写自己的HTTPModule,是因为从调试的角度出发,以及在IIS级别出现的任何问题都必须让操作团队参与其中-仅遵循我们组织中定义的过程即可:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM