重定向具有相同IP地址的多个域

时间:2008-12-04 19:58:39

标签: iis multiple-domains

我们公司多年来拥有多个域名来保护我们的产品名称。当我们的网站首次设置时,我们将所有这些域名解析为IP地址,直到现在才能正常工作。我们用ASP.NET MVC重写了网站,现在使用Recaptcha。 Recaptcha密钥注册到“www.example.com”,这是我们的主要域名。我们还有其他域名,例如“www.examples.com”和“www.ex-ample.com”,它们指向相同的IP地址。当有人从备用域进入我们的站点时,Recaptcha不起作用,因为没有为该备用域注册密钥。我们希望将“www.examples.com”中的内容重定向到“www.example.com”。

我已经读过您可以在IIS中设置站点并使用永久重定向,但如果域都指向相同的IP地址,这会有效吗?

我们还安装了IIS 7的重写模块,因为当我们切换到MVC时,很多页面都被移动了。是否可以编写规则,如果可以,如何编写规则?

我们应该使用更好的替代品吗?

非常感谢任何有助于阐明这一点的帮助。


我在IIS中设置域没有问题,如果域都指向相同的IP地址,这是否可行?如果我访问www.example.com(192.168.1.1)它将最终在www.examples.com(192.168.1.1)上重定向到www.example.com并导致无限循环,因为它们在同一个IP上地址?


如何在Windows 2003 DNS服务器中完成CNAME?

4 个答案:

答案 0 :(得分:0)

对于CNAME方法,您需要选择一个域名并将其作为主域名。因此,请将www.example.com作为首选,并将每个其他域名重定向到此域名。然后你可以避免无限循环。

还有一种方法可以在服务器上设置配置,以便浏览器允许多个域查看单个cookie,在本例中为www.example.com,然后是www.examples.com和www.ex -ample.com尝试阅读www.example.com的recaptha会话信息,它会工作。这将允许您在浏览器中仍然有多个URL,并支持共享会话。

我个人只是将它们全部重定向到一个域,更容易实现。

所以:

127.0.0.1        A       example.com
www.exmaple.com  CNAME   example.com
examples.com     CNAME   example.com
www.examples.com CNAME   example.com

编辑:是的,当我写这篇文章时我睡着了。这只是解决方案的一部分,我在下面发布了其余部分。

答案 1 :(得分:0)

好的,除了我的CNAME解决方案之外,您还必须执行以下操作:

IIS解决方案是在IIS管理器中设置2个站点:

  1. example.com(在主机头中设置),它是指向正确主目录的实际站点。
  2. 所有其他域名将设置在一个“网站”下,其主机标题已添加到“属性” - >“网站” - >“高级”中。对于主目录,请将其设置为example.com的重定向URL。
  3. 这种方法存在的问题是我相信访问www.examples.com/somepage.htm的请求会转发到example.com/。 (不会指向example.com/somepage.htm)

    现在,您可以在IIS7(或带有Isapi_Rewrite插件的IIS6)中执行的操作是在重定向网站上设置.htaccess条目,以将所有流量发送到example.com并附加路径和查询字符串信息。

答案 2 :(得分:0)

是的,您可以通过IIS URL Rewrite模块完成此操作。

以下是一个例子:

    <rule name="WWW Redirect" stopProcessing="true">
     <match url=".*" />
     <conditions>
      <add input="{HTTP_HOST}" pattern="^examples.com$" />
     </conditions>
     <action type="Redirect" url="http://www.example.com/{R:0}" redirectType="Permanent" />
    </rule>

答案 3 :(得分:-1)

就在我的脑海中,你可能想在这里查看DNS CNAME。

另一种可能的解决方案是在IIS中设置一个网站,其中包含适用于您所有其他域的域别名,并让该网站将用户重定向到您的主域/网站。