为什么Url Rewrite 2.0不起作用?

时间:2010-08-27 07:45:40

标签: c# asp.net iis-7.5 url-rewriting

我正在本地IIS 7.5上运行.net framework 4 Web应用程序项目,并安装了URL Rewrite 2.0模块。

我的应用程序包含一个名为sitemap.aspx的页面。我希望能够将/ sitemap /映射到sitemap.aspx

这是我的代码到目前为止,它不起作用。在调用/ sitemap时,我将收到404 Not Found错误屏幕。缺少什么?

   <rewrite>
        <rules>
            <rule name="LowerCaseRule1" enabled="true" stopProcessing="true">
                <match url="[A-Z]" ignoreCase="false" />
                <conditions>
                    <add input="{URL}" matchType="Pattern" pattern="^.+\.((axd)|(js)|(xaml))$" ignoreCase="true" negate="true" />
                </conditions>
                <action type="Redirect" url="{ToLower:{URL}}" redirectType="Permanent" />

            </rule>
            <rule name="RemoveTrailingSlashRule1" stopProcessing="true" enabled="true">
                <match url="(.*)/$" />
                <conditions>
                    <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                    <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                </conditions>
                <action type="Redirect" url="{R:1}" />
            </rule>
        </rules>
        <rewriteMaps>
            <rewriteMap name="test">
                <add key="/sitemap" value="sitemap.aspx"/>
            </rewriteMap>
        </rewriteMaps>
    </rewrite>

1 个答案:

答案 0 :(得分:0)

我错过了该部分的一个条目:

添加

        <rule name="Rewrite rule1 for test">
            <match url=".*" />
            <conditions>
                <add input="{test:{REQUEST_URI}}" pattern="(.+)" />
            </conditions>
            <action type="Rewrite" url="{C:1}" appendQueryString="false" />
        </rule>

一切正常