多个域指向一台服务器。使用重写规则设置首选域

Multiple domains pointing to one server. Using a rewrite rule to set preferred domain

我刚刚为客户推出了一个新网站。作为新发布的一部分,我想尝试整理他们的领域。目前他们有 3 个域都指向同一台服务器,这在 SEO 方面很糟糕。不幸的是,我无法像托管服务提供商那样直接访问服务器的 IIS 配置,但我想确保如果用户进入其中两个域,他们将被重定向到我们认为的主域。

到目前为止我有以下设置:

<rewrite>
    <rules>
    <rule name="Redirect to WWW" stopProcessing="true">
    <match url=".*" />
    <conditions>
        <add input="{HTTP_HOST}" pattern="^maindomain.dk$" />
        <add input="{HTTP_HOST}" pattern="^otherdomain1.dk$"  />
        <add input="{HTTP_HOST}" pattern="^otherdomain2.dk$"  />
    </conditions>
    <action type="Redirect" url="http://www.maindomain.dk/{R:0}"
        redirectType="Permanent"/>
    </rule>
     </rules>
    </rewrite>

我只想 Google 注册我的 maindomain.dk。虽然我在做,但我只希望它使用该域的 www.maindomain.dk 版本。但是,上面的脚本不起作用。

当我导航到 otherdomain1.dk 时,它只会转到 URL。如果我导航到 otherdomain2.dk,它会转到 URL。 maindomain.dk 表现出正确的行为。我需要更改什么才能使其正常工作?

您应该将条件的逻辑分组定义为 "match any"

<conditions logicalGrouping="MatchAny">

此外,您应该修复您的模式以避开这些点

<add input="{HTTP_HOST}" pattern="^maindomain\.dk$" />
<add input="{HTTP_HOST}" pattern="^otherdomain1\.dk$"  />
<add input="{HTTP_HOST}" pattern="^otherdomain2\.dk$"  />