Игнорировать статические файлы в модуле перезаписи URL-адресов IIS (7.xx) - PullRequest
0 голосов
/ 03 мая 2011

Я уже прошел через связанные вопросы и не смог найти ничего, что могло бы помочь.Итак, вот мой вопрос.

Общие серверы, на которые загружается мой сайт, обновляются, и они недавно установили последнюю версию IIS (7.5, я думаю).Они также установили модуль перезаписи.

Перед этим обновлением я использовал сопоставление подстановочных знаков (через фильтр aspnet_isapi), чтобы переписать пути, такие как mysite.com/contact to mysite.com/pages/contact.aspx

Теперь я должен использоватьв файле конфигурации, но регулярное выражение вызывает у меня головную боль.

Я хочу перенаправить все файлы .aspx на страницы / [имя файла] .aspx

, но игнорировать статические файлыфайлы, такие как .css, .jpg, .png и т. д.

В итоге я использую:

<rewrite>
        <rules>
            <rule name="wildcard">
                <match url="(.*)" />
                <action type="Rewrite" url="pages/{R:1}.aspx" />
            </rule>
        </rules>
</rewrite>

Используя вышеописанное, работает:
mysite.com/contact
и т. д.
но это не
mysite.com/contact/
mysite.com/css/style.css
mysite.com/
и т. Д.

Может кто-нибудь помочь?Дайте мне знать, если вам нужна дополнительная информация.

Спасибо

1 Ответ

2 голосов
/ 06 декабря 2011

Вы пробовали условия "Не является файлом" и "Не является каталогом"?

<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
    <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
     <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
</conditions>
...