#asp.net #ssl #https #url-rewriting #acumatica
#asp.net #ssl #https #переписывание URL-адреса #acumatica
Вопрос:
Я должен перенаправлять свой сайт с http на https всякий раз, когда какой-либо пользователь открывает мой сайт с помощью http.
Например: —
http:\abc.mywebsite.com следует перейти к https:\abc.mywebsite.com
Обратите внимание, что в приведенном выше URL-адресе это не www.mywebsite.com , вместо этого это пользовательский URL-адрес как abc.mywebsite.com .
Я попробовал инструмент перезаписи URL и выполнил все шаги, упомянутые здесь. Однако я не могу заставить URL-адрес перезаписываться для правильной работы перенаправления.
Вот как выглядит правило перенаправления URL в IIS: —
Вот как выглядит мой web.config после добавления правила с использованием перезаписи URL.
<configuration>
.....
.....
.....
<system.webServer>
.....
.....
.....
<rewrite>
<rules>
<rule name="Http to Https" enabled="true" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAny">
<add input="{HTTPS}" pattern="^OFF$" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
</system.webServer>
.....
.....
.....
</configuration>
Я также снял флажок Требовать SSL в настройках SSL.
Однако после выполнения всего этого мой веб-сайт по-прежнему не перенаправляется на https. Просто выдает ошибку «… не удается добраться до этой страницы».
Пожалуйста, подскажите, не упустил ли я чего-нибудь здесь.
Ответ №1:
У меня есть некоторые сомнения по поводу правил перезаписи, потому что я вижу много разных примеров.
Попытка использовать другие значения, подобные приведенным в этом блоге Microsoft, может дать лучшие результаты:
<rewrite>
<rules>
<rule name="Redirect to http" enabled="true" patternSyntax="Wildcard" stopProcessing="true">
<match url="*" negate="false" />
<conditions logicalGrouping="MatchAny">
<add input="{HTTPS}" pattern="off" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Found" />
</rule>
</rules>
</rewrite>
Вы также можете настроить трассировку для неудачных запросов в IIS 7. Это может дать вам представление о том, почему не удается перенаправить.
Комментарии:
1. Спасибо HB_Acumatica, я обязательно попробую трассировку. Что касается блога Microsoft, я пробовал это и многие другие варианты / предложения для того же, но ничего не сработало.
2. Microsoft Blog link содержит полное пошаговое руководство по HTTP-> HTTPS, лично я бы постарался следовать ему как можно точнее и после этого отлаживать с помощью журналов трассировки. Информация там, вероятно, более надежна, чем где-либо еще, поскольку она поступила от сотрудника MS.
Ответ №2:
Я столкнулся с такой же проблемой на том же сайте при попытке перенаправить с http на https. Я создал новый сайт и добавил привязку как http://www.example.com / И затем я создал новый Http-редирект и добавил свой https://www.example.com / это сработало.