301使用web.config将一个域重定向到另一个域

我有多个域指向一个托管位置.
我希望将其中一个域建立为我的主域,因此每当用户从辅助域访问我的站点时,我希望执行301重定向到此主域.

例如:

www.example.com

这是我的主要领域.我希望与我的网站相关联的所有其他域重定向到此处.

如果用户进来:

www.test.com或
www.test.com/anypage
等等

然后我希望将用户重定向到该页面的示例版本.

如何使用我的应用程序的web.Config文件执行此操作?我问的原因是,通常我的网络托管服务提供商在他们的后台有一个工具,允许我设置这个重定向,但是,我们的客户选择了不提供这种工具的不同托管服务提供商.

我试图使用以下代码执行此重定向,但它似乎不起作用:

<rule name="Canonical Host Name" stopProcessing="true">
  <match url="(.*)" />
  <conditions>
    <add input="{HTTP_HOST}" negate="true" pattern="^test\.com$" />
  </conditions>
  <action type="Redirect" url="http://www.example.com/{R:1}}" redirectType="Permanent" />
</rule>

我的应用程序是一个由Umbraco驱动的站点,因此在web.config文件中有几个system.webServer条目.可能就是我在错误的地方输入了这个代码,但是在这里的任何帮助都会非常感激,因为我只习惯在.htaccess文件中进行301重定向.

最佳答案
这不是真正的umbraco相关,但我认为你想要做的是:

<rewrite>
  <rules>
    <rule name="redirect" enabled="true">
      <match url="(.*)" />
        <conditions>
          <add input="{HTTP_HOST}" negate="true" pattern="^www.example.com$" />
        </conditions>
      <action type="Redirect" url="http://www.example.com/{R:0}" appendQueryString="true" redirectType="Permanent" />
    </rule>
  </rules>
</rewrite>

匹配所有网址,除非主机名部分正好是www.example.com – 并将其重定向到www.example.com/whatever.

转载注明原文:301使用web.config将一个域重定向到另一个域 - 代码日志