У меня есть правило перенаправления с http на https, которое работает, как и ожидалось. Тем не менее, я не могу получить отдельное правило для перенаправления страниц для работы, когда у меня включено правило http в https. У меня ограниченный опыт работы с web.config и конфигурациями сайта, поэтому я не могу определить, в чем проблема.
Я попытался отключить правило http на https, и после этого правило «Перенаправления старых страниц» работало, как и ожидалось. Но мне нужно включить оба правила. Я включил здесь правила перезаписи, а также образец карты перезаписи. Обратите внимание, что у меня также есть пара правил для моей CMS для создания SEF-URL.
<rewrite>
<rewriteMaps configSource="Web.RewriteMaps.config" />
<rules>
<rule name="Old Page Redirects" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{OldPages:{REQUEST_URI}}" pattern="(.+)" />
</conditions>
<action type="Redirect" url="{C:1}" appendQueryString="false" redirectType="Permanent" />
</rule>
<rule name="CMS Rule 1" stopProcessing="true">
<match url="^(.*)$" ignoreCase="false" />
<conditions logicalGrouping="MatchAny">
<add input="{QUERY_STRING}" pattern="base64_encode[^(]*\([^)]*\)" ignoreCase="false" />
<add input="{QUERY_STRING}" pattern="(>|%3C)([^s]*s)+cript.*(<|%3E)" />
<add input="{QUERY_STRING}" pattern="GLOBALS(=|\[|\%[0-9A-Z]{0,2})" ignoreCase="false" />
<add input="{QUERY_STRING}" pattern="_REQUEST(=|\[|\%[0-9A-Z]{0,2})" ignoreCase="false" />
</conditions>
<action type="CustomResponse" url="index.php" statusCode="403" statusReason="Forbidden" statusDescription="Forbidden" />
</rule>
<rule name="CMS Rule 2">
<match url="(.*)" ignoreCase="false" />
<conditions logicalGrouping="MatchAll">
<add input="{URL}" pattern="^/index.php" ignoreCase="true" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
</conditions>
<action type="Rewrite" url="index.php" />
</rule>
<rule name="HTTP to HTTPS" enabled="true" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="^OFF$" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" />
</rule>
</rules>
</rewrite>
<!-- sample key and value from rewrite map is below -->
<rewriteMaps>
<rewriteMap name="OldPages">
<add key="/closeup.asp?pid=2115" value="/furniture/cabinets-chests/rosewood-dragon-phoenix-design-armoire-b0hc02xc" />
</rewriteMap>
</rewriteMaps>