我有一个特定的设置。这确实是由于一些我无法处理的限制:有我拥有的域1和2,还有一个我不拥有的外部URL:
我的目标是重定向http://sub.start.com (和https://..)。敬http://target.com/my/site?a=1。现在谈一谈限制:
如何实现我的目标?到目前为止,我已经设置了以下内容:
工作的是将http://sub.root.com重定向到http://target.com/my/site?a=1。不起作用的是:
还有,有什么方法来达到我的目标与这个确切的设置吗?我正在考虑将sub.start.com和sub.root.com包含到root.com的SSL证书中。这能解决所有的问题吗?
发布于 2017-11-25 13:30:33
我原以为CNAME条目会“忽略”start.com上的服务器。请求应该直接发送到root.com,不是吗?
错误期望,并在这里反复讨论:重定向是在HTTP协议上完成的。使用CNAME和A DNS记录解析后,请求将直接发送到IP地址,而不知道在DNS级别上发生了什么。CNAME不会进行HTTP重定向。
然后,请求将地址栏上的原始主机名作为HTTP1.1 Host头包含
GET / HTTP/1.1
Host: sub.start.comweb服务器将使用为该虚拟主机配置的内容进行应答。当浏览器将地址与SSL证书进行比较时,也会使用此主机名和仅此主机名。此比较是在发送标头之前和在任何重定向发生之前完成的。
将所有其他主机名配置为重定向到web服务器配置中的规范主机名,可以解决重定向问题。将所有主机名作为证书中的主题替代名称解决了用户正在获取的错误消息。
https://serverfault.com/questions/885118
复制相似问题