URL 重写规则以删除 www.对于除 1 以外的所有 URL

URL Rewrite Rule to remove www. for all URLs except for 1

我有一个删除 www.对于所有进入的网址。我有一个 webserivce,重定向将从 POST 更改为 GET。我需要从这条规则中排除 URL https://www.foo.net/WebServices/service.asmx

我查看了有关 SO 的其他解决方案,但没有成功。

  <rewrite>
      <rules>
          <rule name="Remove WWW" enabled="true" stopProcessing="true">
              <match url=".*"/>
              <conditions>
                    <add input="{HTTP_HOST}" pattern="^(www\.)(foo\.net)" />
              </conditions>
              <action type="Redirect" url="https://{C:2}/{R:1}" />
          </rule>
      </rules>
  </rewrite>    

您可以通过向 "not match" 添加条件(又名添加 "negate='true'" )轻松做到这一点,这样的事情应该有效:

  <rules>
      <rule name="Remove WWW" enabled="true" stopProcessing="true">
          <match url="(.*)" />
          <conditions>
                    <add input="{HTTP_HOST}" pattern="^www\.foo\.net$" />
                    <add input="{URL}" pattern="^/WebServices/service\.asmx$" negate="true" />
          </conditions>
          <action type="Redirect" url="https://foo.net/{R:1}" />
      </rule>
  </rules>