2016-04-27 2 views
1

Я понимаю, что это простой вопрос, но я просто не нахожу ответа. Я применил ниже правила ...http to https in IIS

<rewrite> 
      <rules> 
      <rule name="HTTP to HTTPS redirect" stopProcessing="true"> 
       <match url="(.*)" /> 
       <conditions> 
       <add input="{HTTPS}" pattern="off" ignoreCase="true" /> 
       </conditions> 
       <action type="Redirect" redirectType="Found" url="https://{HTTP_HOST}/{R:1}" /> 
      </rule> 
      </rules> 
     </rewrite> 

URL-адрес Я заинтересован в имеет узор

http://[domain]/[directory]/[aspx page] 

Так http://example.com/funstuff/thefair.aspx

Результат перезапись http://[domain]/[an_aspx_page]

Итак, переписывание удаляет каталог.

Я предположил, что {R: 1} указывает параметр, который будет перезаписан, и я пробовал https: // {HTTP_HOST}/{R: 1}/{R: 2}, но это приводит к ошибке 500 ,

Я хочу направить весь трафик в этом домене на https без изменения остальной части URL, введенной пользователем.

+1

{R: 1} и {R: 2} (и т. Д.) Представляют группы захвата для регулярного выражения, используемого для соответствия URL-адресу. У вас нет второй группы захвата, поэтому {R: 2} не определена. http://www.iis.net/learn/extensions/url-rewrite-module/creating-rewrite-rules-for-the-url-rewrite-module –

ответ

2

Вот что мы используем на одном из наших сайтов для автоматического перенаправления всего трафика на версию https. Он также включает в себя все остальное в URL-адресе.

<rewrite> 
     <rules> 
      <clear /> 
      <rule name="Redirect to https" enabled="true" stopProcessing="true"> 
       <match url="(.*)" /> 
       <conditions> 
        <add input="{HTTPS}" pattern="off" ignoreCase="true" /> 
       </conditions> 
       <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" appendQueryString="true" /> 
      </rule> 
     </rules> 
    </rewrite> 
+0

отлично! Благодарю. Неплохая картинка профиля – tintyethan