2015-05-29 4 views
5

Я читал несколько сообщений здесь, как в SO, так и в сети (блоги IIS и т. Д.). Я пытаюсь установить все соединения, идущие от domain.com на www.domain.com, и в то же время форсировать запрос от HTTP до HTTPS.HTTP to HTTPS Redirect - IIS 8.5 не работает должным образом

Я использую этот набор правил и переписывает, но единственное, что происходит, это то, что он перенаправляет штраф, но не перенаправляет на SSL.

<!-- Redirect to HTTPS --> 
<rewrite> 
    <rules> 
     <rule name="Redirect to www" stopProcessing="true"> 
      <match url="(.*)" /> 
      <conditions trackAllCaptures="false"> 
       <add input="{HTTP_HOST}" matchType="Pattern" pattern="^mydomain.com$" ignoreCase="true" negate="false" /> 
      </conditions> 
      <action type="Redirect" url="{MapProtocol:{HTTPS}}://www.mydomain.com/{R:1}" /> 
     </rule> 
    </rules> 
    <rewriteMaps> 
     <rewriteMap name="MapProtocol" defaultValue="http"> 
      <add key="on" value="https" /> 
      <add key="off" value="http" /> 
     </rewriteMap> 
    </rewriteMaps> 
</rewrite> 

Что я делаю неправильно?

Основная ссылка блог: http://weblogs.asp.net/owscott/url-rewrite-protocol-http-https-in-the-action и это ТАК пост - web.config redirect non-www to www

+0

кроме ошибок в конфигурации, не забудьте сделать ваши эксперименты в окне инкогнито в Chrome или ваши 301 редиректа будет кэшировать. Вам нужно будет закрыть и запустить новое окно инкогнито каждый раз, когда вы начнете новый. –

ответ

6

Edit: Так что я нашел этот блог: http://www.meltedbutter.net/wp/?p=231 и дал ему попробовать и вуаля! Работал как шарм. Не уверен, почему это работало над правилами, указанными выше, но в моем случае нижеследующее работает и успешно принимает весь не-www-трафик и перенаправляет его на www и https.

<!-- Redirect to HTTPS --> 
     <rewrite> 
      <rules> 
       <rule name="http to https" stopProcessing="true"> 
        <match url="(.*)" /> 
        <conditions> 
         <add input="{HTTPS}" pattern="^OFF$" /> 
        </conditions> 
        <action type="Redirect" url="https://www.domain.com/{R:1}" redirectType="SeeOther" /> 
       </rule> 
      </rules> 
     </rewrite> 
+1

'redirectType =" seeOther "- это решение. Его разрушил мой день. –

1

Мы столкнулись с таким же вопросом, а перенаправление с HTTP на HTTPS с использованием модуля URL Rewrite, но после выключения требуется модуль Ssl в IIS сделали трюк.

  1. Перейти к SSL Настройках сайта
  2. Uncheck требуют SSL флажок.
  3. Применить настройки и перезагрузки сервера
Смежные вопросы