Почему Url Rewrite 2.0 не работает? - PullRequest
0 голосов
/ 27 августа 2010

Я запускаю проект веб-приложения .net framework 4 на своем локальном IIS 7.5 с установленным модулем 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 голосов
/ 28 августа 2010

Мне не хватало записи в разделе:

Добавить

        <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>

и все отлично работает

...