使用web.config转换,如何在顶部注入规范网址规则?

时间:2013-04-12 19:06:30

标签: asp.net web-config configuration-files web-config-transform

在ASP.Net项目中,对于发布版本的Web.Config(使用Web.Release.Config转换文件),如何在重写部分注入规范URL规则?

1 个答案:

答案 0 :(得分:4)

下面是一个对我有用的示例,您必须使用XPath选择器才能通过xdt:Transform属性将规则注入正确的位置。

<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="CanonicalHostNameRule1" enabled="true" stopProcessing="true" 
                    xdt:Transform="InsertBefore(/configuration/system.webServer/rewrite/rules/rule[position() = 1])"
                >
                    <match url="(.*)" />
                    <conditions>
                        <add input="{HTTP_HOST}" negate="true" pattern="^www\.yoursite\.com$" />
                    </conditions>
                    <action type="Redirect" url="http://www.yoursite.com/{R:1}" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

您也可以使用xpath语句执行其他一些有趣的替换。我希望上面的例子很有用,因为StackOverflow通常是我现在首先看到的这类东西。