如何重定向访客https://domain.net到https://www.domain.net? 使用 A 记录或其他 DNS 设置?
我之所以询问,是因为我错误地为 www.domain.net 购买了 SSL 证书...
感谢您的任何想法!
答案1
配置您的服务器以发出 HTTP 301 响应以将一个映射到另一个,例如使用重定向与 Apache 合作。
答案2
您需要设置 Web 服务器以向浏览器发送重定向。以下是我在 Apache 中执行此操作的方法。
将两个 DNS 记录指向同一个 IP 地址(例如使用 CNAME 别名),并将以下代码放在监听此地址的虚拟主机中。您还需要启用 mod_rewrite。
# Do an external redirect:
# Places www in front of the domain, but only if there's no www or other subdomain yet.
RewriteEngine On
RewriteCond %{HTTP_HOST} !^.*\..*\..*$ [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}$1 [R=301,L]
答案3
正如 andrushka 和 Martijn Heemels 所说,您需要配置一个 Web 服务器以将客户端重定向到 www. 地址。但由于我们讨论的是 https,所以情况要复杂得多。当浏览器客户端打开与其认为是 www.domain.net 的服务器的 SSL 连接时,它希望服务器使用对该域有效的证书进行响应前它发送 HTTP 请求(因此在响应中获得重定向)。如果您的服务器只有 domain.net 的证书,您将收到证书警告。有几种方法可以解决这个问题:
1- 接受它,并配置服务器以将客户端重定向到正确的域(在他们收到证书警告后)。这对安全性不利,因为您正在训练用户信任任何冒充您的随机冒名顶替者网站...
2- 不必担心重定向,只需在 www.domain.net 和 domain.net 下提供相同的内容即可。无论哪种方式,您的用户都会收到相同的警告,因此重定向没有多大意义(除非您出于其他原因需要重定向,例如 URL 一致性)。
3- 获取对 www.domain.com 和 domain.com 都有效的双域证书(一个作为证书的主题,另一个作为主题备用名称扩展),并将其与前两种方法中的任一种方法一起使用。我还没有尝试过,但我认为StartSSL 的免费证书包括此功能。
4- 获取 domain.net 的单独证书,并运行第二台服务器(或不同 IP 地址上的虚拟服务器)来处理重定向。它必须位于不同的 IP 地址上,这样它才能在看到客户端的 HTTP 请求之前知道要使用哪个证书。
5- 获取 domain.net 的单独证书,使用足够新的服务器软件在同一个 IP 地址上运行第二个虚拟服务器以支持服务器名称指示扩展到 SSL/TLS(即 Apache 2.2.12 或更高版本),并希望客户端的浏览器也足够新(有些是,有些则不是)。