我想将一个域重定向到另一个域,同时保持相同的文件夹和文件请求结构,如下所示:
http://libraries.domain.net/testing/another/blah.php
https://libraries.anotherdomain.com/testing/another/blah.php
暂时忽略SSL部分。
我的第一个问题很简单:
- 如何在我的
web.config
文件(IIS)中实现这一点 - 这种类型的重定向称为什么
- 出于我自己的兴趣,我如何对
.htaccess
文件也这样做?你不必回答这个问题,因为我认为这个问题无论如何都有正确的答案,但只是希望得到证实
请注意:如果您只知道问题3的答案,请不要麻烦回答,因为我的主要问题是如何在IIS而不是Apache中做到这一点。
SSL
到目前为止,我忽略了这一部分,因为我不确定是否可以在不收到安全错误的情况下完成。然而,我想知道的是,如何在保持安全连接的同时执行上述重定向?
显然,anotherdomain.com
必须具有有效的SSL证书,但domain.com
是否也必须具有有效的证书,即使它正在转发所有页面?
拥有两个证书会防止出现任何错误吗?还是会出现一个警告,说You are not going to where you think you are going
或类似的东西?
使用DNS这样做会更好吗?SSL能和DNS一起工作吗?
如何在web.config文件(IIS)中实现这一点
请参阅以下内容:
- http://www.iis.net/downloads/microsoft/url-rewrite
- http://www.iis.net/learn/extensions/url-rewrite-module/url-rewrite-module-video-walkthrough
- http://blogs.iis.net/ruslany/archive/2009/04/08/10-url-rewriting-tips-and-tricks.aspx
使用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>
这种类型的重定向称为什么
我不确定它是否有特定的名称。我只是称之为域重定向或30x重定向。
为了我自己的利益,我如何使用.htaccess文件?你不必回答这个问题,因为我认为这个问题无论如何都有正确的答案,但只是希望得到证实。
- https://stackoverflow.com/a/3010036/908471
- http://httpd.apache.org/docs/current/mod/mod_rewrite.html
RewriteEngine on
RewriteCond %{HTTP_HOST} example.net$
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
拥有两个证书会防止出现任何错误吗?还是会发出警告,说你不会去你认为要去的地方,或者类似的事情
是的,来自可信证书颁发机构的两个有效证书将防止出现错误(只要页面上的所有内容也来自有效的https链接)。如果证书颁发机构提供SubjectAltName支持(也称为SAN或统一通信证书),您也可以只使用一个证书。
如果你有两个有效证书,只有一个IP,你可以做的另一件事是使用SNI,但你需要明白,并不是所有的网络客户端都可以使用SNI——所以要小心。SNI的使用正在增加,我建议这将成为首选方法,因为您不必在更新时处理跟踪SAN/UCC上的域的头痛问题。
用DNS这样做会更好吗?SSL能和DNS一起工作吗
DNS与SSL无关。你不能通过DNS欺骗SSL。