Переопределить правило перезаписи IIS для дочернего сайта?
Я хотел заставить все входящие соединения вернуться к HTTPS для моего сайта. Поиск ответа на Stackru.com дал следующий код:
<rewrite>
<rules>
<rule name="Redirect to HTTPS" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="^OFF$" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
Это прекрасно работает. Теперь все, кто заходит на http://mysite.com/, перенаправляются на https://mysite.com/.
У mySite.com есть субприложение, доступ к которому осуществляется по адресу mySite.com/ajax/ . Я не хочу, чтобы входящие соединения с этим вложенным приложением подвергались перезаписи; Исходный протокол (http или https), указанный пользователем, должен сохраняться при подключении к подпрограмме / ajax. Что я должен поместить в файл web.config этого дочернего приложения, чтобы отменить перезапись, выполняемую на родительском уровне?
(Причина, по которой я хочу, чтобы дочерний сайт / ajax был освобожден от перезаписи https, заключается в том, что к нему можно получить доступ со сторонних веб-страниц на основе HTTP. Если сторонней страницей, которая выполняет вызов / ajax, является HTTP (не HTTPS), затем я хочу сохранить этот HTTP-код при вызове.)
1 ответ
Следующий фрагмент web.config должен делать то, что вы хотите. Он удаляет все правила перезаписи для этого приложения.
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<clear />
<!-- Insert rules for this application (if any) **below** the "clear" -->
</rules>
</rewrite>
</system.webServer>
</configuration>