2016-07-05 3 views
2

Я использую следующий шаблон для создания структуры каталогов для моего основного сайта и поддоменов:Добавить HTTPS перенаправлять существующие правила, чтобы переписать субдомен в папку

A. Каждый сайт находится в своем собственном подкаталоге, в том числе основной сайт, так что у меня есть что-то вроде

\wwwroot 
    \main 
    \subdomain1 

B. В wwwroot есть только 1 файл. Файл web.config со следующим

<configuration> 
<system.webServer> 
    <modules runAllManagedModulesForAllRequests="true" /> 
    <rewrite> 
     <rules> 
      <rule name="Rewrite to folder1" stopProcessing="true"> 
       <match url="(.*)" /> 
       <conditions> 
        <add input="{HTTP_HOST}" pattern="^www.MyMainDomain.com$" /> 
       </conditions> 
       <action type="Rewrite" url="main/{R:1}" /> 
      </rule> 
      <rule name="subdomain1.MyMainDomain.com to sub folder" enabled="true" stopProcessing="true"> 
       <match url="(.*)" ignoreCase="true" /> 
       <conditions logicalGrouping="MatchAll"> 
        <add input="{HTTP_HOST}" pattern="^subdomain1\.MyMainDomain\.com$" ignoreCase="false" /> 
        <add input="{PATH_INFO}" pattern="^/subdomain1($|/)" negate="true" /> 
       </conditions> 
       <action type="Rewrite" url="\subdomain1\{R:0}" /> 
      </rule> 
     </rules> 
    </rewrite> 
</system.webServer> 

Как добавить HTTPS перенаправлять только субдомен?

Каков наилучший способ отладки того, что переписывается/перенаправляется?

+0

Вы получили это для работы. У меня такая же проблема, и я не уверен, как ее обрабатывать. Единственное различие заключается в том, что у меня нет «основного», но просто нужно перенаправить example.com/subdomain1 на https://subdomain1.example.com/subdomain1 – NoBullMan

ответ

1

Я не уверен, что лучший способ отлаживать переписанный/перенаправленный трафик.

В вашем состоянии вы должны проверять для если запрос HTTP:

<add input="{HTTP}" negate="true" pattern="^ON$" /> 

или проверка на отсутствие запроса по протоколу HTTPS:

<add input="{HTTPS}" negate="true" pattern="^OFF$" /> 

Кроме того, попробуйте изменить строку с типом = «переписать» из перезаписи в постоянную переадресацию, таким образом, браузер получит правильный код ответа 301.

<action type="Redirect" url="https://{HTTP_HOST}/" redirectType="Permanent" /> 
Смежные вопросы