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

时间:2015-10-22 16:26:11

标签: url-rewriting iis-7.5

我有一个删除www的工作规则。对于所有进入的URL。我有一个webserivce,重定向将从POST更改为GET。我需要从此规则中排除网址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>    

1 个答案:

答案 0 :(得分:0)

您可以通过向&#34;不匹配&#34;添加条件来轻松实现。 (又名添加&#34;否定=&#39; true&#39;&#34;),这样的事情应该有效:

  <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>