В настоящее время у меня есть приложение React, созданное с помощью create-Reaction-app, размещенное на IIS. Большинство переписываний URL сделано и работает очень хорошо, за исключением того факта, что теперь я использую библиотеку реагировать на привязку для предварительного рендеринга контента. Мне нужно выяснить, как перенаправить URL-адреса, чтобы указать место, где находится HTML-файл (это в основном для целей SEO), например, www.mysite.com/blog, чтобы перенаправить 301 на www.mysite.com/blog/
Итак, все, что я думаю, это добавить косую черту в конец URL. Интересно, что такое же развертывание приложения прекрасно работает на сервере apache с точки зрения получения разделяемых ссылок и допустимых мета-тегов для SMO и SEO, но в IIS это не работает вообще.
Вот часть файла web.config:
<rewrite>
<rules>
<rule name="Static Assets" stopProcessing="true">
<match url="([\S]+[.](html|htm|svg|js|css|png|gif|jpg|jpeg))" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_URI}" negate="true" pattern="^/api$" ignoreCase="true" />
</conditions>
<action type="Rewrite" url="/{R:1}"/>
</rule>
<rule name="ReactRouter Routes" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
<add input="{REQUEST_URI}" pattern="^/(api)" negate="true" />
</conditions>
<action type="Rewrite" url="/index.html" />
</rule>
</rules>
</rewrite>