Переопределить правило перезаписи 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>
Другие вопросы по тегам