1

我想将一个域重定向到另一个域,同时还保持相同的文件夹和文件请求结构,如下所示:

http://libraries.domain.net/testing/another/blah.php
https://libraries.anotherdomain.com/testing/another/blah.php

暂时忽略 SSL 部分。

我的第一个问题很简单:

  1. 如何在我的web.config文件(IIS)中实现这一点?
  2. 这种类型的重定向称为什么?
  3. 为了我自己的利益,我该如何处理.htaccess文件呢?您不必回答这个问题,因为我认为这个问题无论如何都有正确的答案,但只是希望它得到确认。

请注意:如果您只知道问题 3 的答案,请不要回答,因为我的主要问题是关于如何在 IIS 中执行此操作,而不是 Apache。

SSL

到目前为止,我已将这部分排除在外,因为我不确定是否可以在不收到安全错误的情况下进行操作。但是,我想知道的是如何在保持安全连接的同时执行上述重定向?

显然anotherdomain.com 必须有一个有效的 SSL 证书,但domain.com即使它正在转发所有页面也必须有一个有效的证书?

拥有两个证书会防止出现任何错误,还是会出现警告说You are not going to where you think you are going,或类似的东西?

使用 DNS 执行此操作会更好吗?SSL 可以与 DNS 一起使用吗?

4

1 回答 1

1

如何在我的 web.config 文件(IIS)中实现这一点?

请参阅以下内容:

使用 IIS URL 重写的示例:

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



这种类型的重定向称为什么?

我不确定这是否有特定的名称。我只是将其称为域重定向或 30 倍重定向。



为了我自己的利益,我如何使用 .htaccess 文件来执行此操作?您不必回答这个问题,因为我认为这个问题无论如何都有正确的答案,但只是希望它得到确认。

RewriteEngine on

RewriteCond %{HTTP_HOST} example.net$
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]



拥有两个证书会防止出现任何错误,还是会发出警告说你不会去你认为你要去的地方,或者类似的东西?

是的,来自受信任的证书颁发机构的两个有效证书将防止出现错误(只要页面上的所有内容也来自有效的 https 链接)。如果证书颁发机构提供 SubjectAltName 支持(也称为 SAN 或统一通信证书),您也可以只使用一个证书。

如果您有两个有效证书且只有一个 IP,您可以做的另一件事是使用SNI,但您需要了解并非所有 Web 客户端都可以使用 SNI - 所以要小心。SNI 的使用正在增加,我建议这将成为首选方法,因为您不必处理更新时应该在 SAN/UCC 上跟踪域的麻烦。



使用 DNS 执行此操作会更好吗?SSL 可以与 DNS 一起使用吗?

DNS 与 SSL 无关。您不能通过 DNS 恶作剧来欺骗 SSL。

于 2012-11-22T18:52:20.260 回答