2

我的重定向规则有问题。我希望我的页面有“www”前缀。它适用于某些页面,而在其他页面上它根本不做任何事情。这是我的规则:

    <rule name="WWW Rewrite" enabled="true">
      <match url="(.*)" />
      <conditions>
        <add input="{HTTP_HOST}" negate="true"
          pattern="^www\.([.a-zA-Z0-9]+)$" />
      </conditions>
      <action type="Redirect" url="http://www.{HTTP_HOST}/{R:0}"
        appendQueryString="true" redirectType="Permanent" />
    </rule>

任何帮助将不胜感激!

4

2 回答 2

0

你可以试试这个 ^(www.)?([.a-zA-Z0-9]+)$

如果页面当前没有“www”,那将匹配。并且应该匹配是否匹配。

您需要对此进行编辑操作以获取第二组 <action type="Redirect" url="http://www.{HTTP_HOST}/{R:1}" appendQueryString="true" redirectType="Permanent" />

于 2012-11-26T10:35:15.810 回答
0

这是您的规则,您只需检查您的主机是否与预期主机不匹配,然后重定向到正确的 url。

  <rules>
    <rule name="Canonical Host Name" stopProcessing="true">
      <match url="(.*)" />
      <conditions>
        <add input="{HTTP_HOST}" negate="true" pattern="^www\.domain\.com$" />
      </conditions>
      <action type="Redirect" url="http://www.domain.com/{R:1}" redirectType="Permanent" />
    </rule>
  </rules>
于 2013-01-05T02:20:41.367 回答