Я тщательно изучил этот пункт и, по-моему, делаю правильные вещи. Однако это не работает, поэтому мое мнение должно быть неправильным!Правила перезаписи IIS не работают должным образом
У меня есть сайт, на котором все содержимое находится в wwwroot или других папках. Я пытаюсь заставить URL HTML5 работать. На веб-сайте представлено 5 типов URL.
- Пустой URL.
- URL, предназначенный для физического файла, например, CSS, HTML или JS подать
- URL-адрес/API/... для доступа к ресурсам
- A URL/OAuth/маркер для аутентификации
- формат HTML5 тип URL, например/ABOUTUS
у меня есть следующие правила перезаписи в web.config
<rule name="index.html as document root" stopProcessing="true">
<match url="^$" />
<action type="Rewrite" url="/wwwroot/index.html" />
</rule>
<rule name="static dist files" stopProcessing="true">
<match url="^(.+)$" />
<conditions>
<add input="{APPL_PHYSICAL_PATH}wwwroot\{R:1}" matchType="IsFile" />
</conditions>
<action type="Rewrite" url="/wwwroot/{R:1}" />
</rule>
<rule name="api call" stopProcessing="true">
<match url="^/api/" />
<action type="None"/>
</rule>
<rule name="authorization call" stopProcessing="true">
<match url="^/oauth/token$" />
<action type="None"/>
</rule>
<rule name="reroute html5 to index.html" stopProcessing="true">
<match url="^.+$" />
<action type="Rewrite" url="/wwwroot/index.html" />
</rule>
Я не могу понять, что я делаю неправильно. Документация, которую я могу найти для «stopProcessing», неточна, но я предполагаю, что это означает, что если это правило согласовано, не обрабатывайте больше правил.
Что происходит, так это то, что обращения к API или для проверки подлинности не обрабатываются правильно - отладка API не вызывается и вместо этого она переписывается в wwwroot/index.html.
Уверен, что я делаю что-то очень простое, но я пробовал все, что я могу думать об этом, имеет смысл.
Любая помощь приветствуется.
Сервер использует OWIN с JWT, а фронтент - AngularJS. Я использую сообщество VS2015 для разработки.