У меня есть следующее правило перенаправления, чтобы заставить весь трафик http к https. Однако нам нужно обслуживать некоторые страницы, которые имеют проблемы с отображением в https, и заставить их быть http, пока мы не сможем обновить их для работы в https.
<rule name="Redirect to https" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" appendQueryString="false" />
</rule>
Одна вещь, которую все эти страницы имеют в общем, в том, что "/ SSLA /" является частью URL. Я не гуру переписывания, которым бы я хотел быть, но есть несколько возможных способов исправить это:
a) Каким-то образом обновите это правило, чтобы исключить URL с помощью "/SSLA/".
B) Добавить правило перед этим правилом, которое перехватывает что-либо с помощью "/ SSLA /" и перенаправляет на http, если оно идет на https, и (либо в том же правиле, либо в отдельном правиле?) Также ничего не делает для запросов http, но останавливает обработки, чтобы не попасть в это глобальное правило перенаправления с http на https.
Проблема в том, что я не очень хорошо разбираюсь в правилах регулярных выражений или переписывания, поэтому я не совсем уверен, как выполнить какое-либо из этих решений (на самом деле даже не уверен, что и то, и другое является «правильным» способом справиться с этим).
Так что ... пожалуйста, помогите! :)
РЕДАКТИРОВАТЬ: я должен отметить, что я обновил код C # для перенаправления на http для этих страниц, но, конечно, это вызывает цикл с вышеуказанным правилом. Но я просто хочу сказать, что все, что мне нужно , - это чтобы правила перенаправления не заставляли запросы http для страниц с / SSLA на https, поскольку код перенаправляет любые такие запросы https на http. Но если это тоже тривиальный вопрос, чтобы правило перенаправления принудительно отправляло запросы https с "/ SSLA /" в http, то я мог бы удалить код c #, который делает то же самое.