#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>
Вышеупомянутое решение работает. Я не могу понять, почему это нельзя было сделать, используя одно правило.
Надеюсь, это поможет.