Я пытаюсь переписать HTTP на HTTPS для определенной подпапки на моем веб-сервере IIS 8.5, но он не работает. Я читал бесчисленные другие решения и сообщения в блогах, но ничего не пробовал.Переписывать только вложенную папку (HTTP to HTTPS) перенаправляет на сайт root
http://domain.example.com/one/two/three/
должен перенаправлять ... (тот же адрес, но с использованием протокола HTTPS)
https://domain.example.com/one/two/three/
но вместо этого перенаправляет на ... (корень сайта с использованием протокола HTTPS)
https://domain.example.com
нагрузки. .. (желаемый URL с https)
https://domain.example.com/one/two/three/
также перенаправляется на ... (корень сайта с использованием https)
https://domain.example.com
это удаление подпапок с URL.
Эта папка также должна быть защищена с помощью проверки подлинности Windows, с которой я могу работать, но перенаправление https не работает с включенной аутентификацией или без нее, поэтому я не думаю, что это причина.
В рамках IIS I выбрана желаемая вложенная папка (/ three/в примере выше) и создана там правило Rewrite.
<rewrite>
<rules>
<clear />
<rule name="HTTP to HTTPS redirect" enabled="true" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAny">
<add input="{HTTPS}" pattern="^OFF$" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" appendQueryString="true" redirectType="SeeOther" />
</rule>
</rules>
</rewrite>
Это должно, конечно, работать с любыми файлами и папками, содержащимися в желаемой подпапке. (/ Три)
Я попробовал это, и он перенаправляет на кажущуюся правильный URL, но выдает ошибку «слишком много переадресаций»:
<rule name="HTTP to HTTPS redirect" enabled="true" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll">
<add input="{HTTPS}" pattern="^OFF$" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" appendQueryString="false" redirectType="SeeOther" />
</rule>