0

我遇到以下情况,其中 url 重写规则相互冲突:

  1. 规则 1:我需要将我的域重定向到 https
  2. 规则 2:我需要重定向 www.mydomain.com --> https://mydomain.com
  3. 规则 3:我需要 www.mydomain.com 和 mydomain.com 都重定向到 https://mydomain.com/myfolder,但如果我有 mydomain.com/mysecondfolder 应该只重定向到https://mydomain.com/mysecondfolder

我能够实现的只是将 www.mydomain.com 重定向到https://mydomain.com(只是因为它与另一个规则冲突,如果它单独工作的话)。

我的规则是:

<rule name="HTTP to HTTPS redirect" stopProcessing="true">
              <match url="(.*)" />
                <conditions>
                    <add input="{HTTPS}" pattern="off" />
                </conditions>
              <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" />
            </rule> 

            <rule name="redirect to myfolder" enabled="true">
                <match url="^$" />
                <conditions>
                    <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                </conditions>
                <action type="Rewrite" url="/myfolder" />
            </rule>
4

1 回答 1

0

我能够使用以下规则解决此问题:

<rewrite>
            <rules>
            <rule name="Canonical Host Name" enabled="true" stopProcessing="true">
              <match url="(.*)" />
              <conditions>
                <add input="{HTTP_HOST}" negate="true" pattern="^myapp\.com$" />
              </conditions>
              <action type="Redirect" url="http://myapp.com/{R:1}" redirectType="Permanent" />
            </rule>
                <rule name="HTTP to HTTPS redirect" enabled="true" stopProcessing="true">
                  <match url="(.*)" />
                    <conditions>
                        <add input="{HTTPS}" pattern="off" />
                    </conditions>
                  <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" />
                </rule> 
                <rule name="redirect to items" enabled="false">
                    <match url="^$" />
                    <conditions>
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="/items" />
                </rule>

            </rules>
        </rewrite>
于 2012-10-12T08:52:23.353 回答