Конфигурация IIS для использования Angular и перенаправление на HTTPS

Angular приложение по своей природе одностранично. И вся информация находится в файле index.html. При переходе по роутам внутри приложения проблем не возникает. Но если перезагрузить страницу, находясь на роуте отличном от корневого, заработаем ошибку "404 - File or directory not found".
Вторая проблема -- перенаправление пользователй, пришедших по протоколу http на https. Для этого, получаем и устанавливаем сертификат https в корень сервера. В биндинге нашего сайта прописываем одноименное http имя сайта, например, mysite.com, выбираем https и в сертификатах выбираем сертификат, привязанный к нашему сайту.
Для того, чтобы решить все эти проблемы, устанавливаем модуль URL Rewrite и прописываем правила.
В корневой директории сайта в файл web.config прописываем следующие правила:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="Redirect to HTTPS" stopProcessing="true">
                    <match url=".*" />
                    <conditions>
                        <add input="{HTTPS}" pattern="OFF"  ignoreCase="true" />
                    </conditions>
                    <action type="Redirect" redirectType="Found" url="https://{HTTP_HOST}{REQUEST_URI}" appendQueryString="false" />
                </rule>

                <rule name="Angular Routes" stopProcessing="true">
                    <match url=".*" />
                    <conditions logicalGrouping="MatchAll">
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="/" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

Комментарии

Популярные сообщения из этого блога

Настройка IIS для работы с NodeJS

Kerberos и IIS OOS авторизация

Отладка Angular в VS Code