URL переписывает протокол обновления и домен, если URL-адрес http://

#url #iis #url-rewriting #rewrite

#url #iis #url-перезапись

Вопрос:

Я хотел бы перенаправить все вызовы на http://www.domain.com/csp / для https://secure.doman.com/csp / использование перезаписи URL, запущенной в IIS 8.5. Я бы хотел, чтобы URL-адрес в браузере обновился соответствующим образом. Я не могу заставить его работать.

Ниже приведен раздел файла web.config с правилом

      <rules>
    <rule name="CSP to SSL" enabled="true" stopProcessing="true">
       <match url="^http://www.domain.com/csp/(.*)$" />
       <conditions>
                    <add input="{CACHE_URL}" pattern="^http://" />
       </conditions>
       <action type="Redirect" url="https://secure.domain.com/csp/{R:1}" />
    </rule>
  </rules>
  

Спасибо.

Ответ №1:

Благодаря ответу питервиолы на http://forums.iis.net/t/1214515.aspx ?Измените на https и настройте домен , если URL использует http и соответствует конкретному пути, мне удалось найти решение, которое я искал.

            <rule name="csp2HTTPS" enabled="true" stopProcessing="true">
                <match url="(.*)csp/(.*$)" ignoreCase="true" />
                <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
                    <add input="{HTTPS}" pattern="off" />
                </conditions>
                <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" appendQueryString="true" redirectType="Permanent" />
            </rule>
            <rule name="csp2subdomain" enabled="true" stopProcessing="true">
                <match url="(.*)csp/(.*$)" />
                <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
                    <add input="{HTTP_HOST}" pattern="^(www.|)domain.com$" />
                </conditions>
                <action type="Redirect" url="https://secure.domain.com{REQUEST_URI}" appendQueryString="true" redirectType="Permanent" />
            </rule>
  

Вышеупомянутое решение работает. Я не могу понять, почему это нельзя было сделать, используя одно правило.

Надеюсь, это поможет.