7

我需要重定向组合来实现以下目标:

重定向http://example.comhttp://www.example.com,同时重定向https://www.example.comhttps://example.com

我想在www访问站点时强制前缀做域名http

但是 SSL 证书仅在没有www.

访问时https,我不希望域名有www前缀。

4

2 回答 2

13

https://www.mysite.com从to的重定向https://mysite.com只能在客户端向 发出初始请求后发生https://www.mysite.com

为了使这个初始连接正常工作,服务器https://www.mysite.com必须有一个有效的证书www.mysite.com,否则,这个连接甚至不会发生(并且服务器不会发送重定向响应)。

如果您仍需要重定向,在同一台服务器上,您的服务器必须提供对您要服务的主机名有效的证书。您应该获得包含两个主题备用名称 DNS 条目的证书:mysite.comwww.mysite.com; 这将允许您使用相同的证书为两个主机提供服务(然后在需要时使用重写规则)。

(如果您希望客户端支持它,您也可以将服务器名称指示与两个不同的证书一起使用,但这通常用于完全不同的主机名。)

CA 颁发对两者都有效的证书是很常见的mysite.comwww.mysite.com当您申请其中一个时,有时无需额外费用。

于 2012-05-23T18:57:04.717 回答
0

将其放入非 HTTPS文档根目录中的 .htaccess 文件中:

RewriteCond %{HTTP_HOST} ^mysite.com$
RewriteRule ^(.*)$ http://www.mysite.com/$1 [R]

这在您的 HTTPS 文档根目录中:

RewriteCond %{HTTPS} =on
RewriteCond %{HTTP_HOST} ^www.mysite.com$
RewriteRule ^(.*)$ https://mysite.com/$1 [R]
于 2012-05-23T18:14:53.800 回答