0

我的 RewriteRules 中有以下规则

<rule name="New URL redirects">
    <match url=".*"/>
    <conditions>
        <add input="{OldUrls:{REQUEST_URI}}" pattern="(.+)"/>
    </conditions>
    <action type="Redirect" url="{C:1}" appendQueryString="false"/>
</rule>

在我的 RewriteMaps 我有以下

<rewriteMap name="OldUrls">
        <add key = "/SomeOldUrl" value = "/New/ShinyUrl" />
</rewriteMap>

我想确保新 url 使用wwwhttps作为重定向的一部分,我如何将所有这些添加到一个规则中?

4

1 回答 1

1

您可以尝试以下规则:

 <rule name="Force WWW and SSL" enabled="true" stopProcessing="true">
                <match url="(.*)" />
                <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
                    <add input="{HTTP_HOST}" pattern="^[^www]" />
                    <add input="{HTTPS}" pattern="off" />
                    <add input="{HTTPS}" pattern="www.sample1.com" negate="true" />
                    <add input="{OldUrls:{REQUEST_URI}}" pattern="(.+)" />
                </conditions>
                <action type="Redirect" url="https://www.sample1.com/{C:1}" appendQueryString="true" redirectType="Permanent" />
            </rule>

            <rewriteMap name="OldUrls">
                <add key="/s2" value="/s3" />
            </rewriteMap>
        </rewriteMaps>

在此处输入图像描述

于 2019-12-13T10:01:24.383 回答