我需要组合重定向来实现以下目标:
将http://example.com重定向到http://www.example.com,同时将https://www.example.com重定向到https://example.com。
当通过http访问站点时,我想强制www前缀做域名。
但是,SSL证书只有在没有www的情况下才有效。
当通过https访问时,我不希望域名带有www前缀。
发布于 2012-05-24 02:57:05
只有在客户端向https://www.mysite.com发出初始请求后,才能从https://www.mysite.com重定向到https://mysite.com。
要使这个初始连接工作,https://www.mysite.com的服务器必须有一个对www.mysite.com有效的证书,否则,这个连接甚至不会发生(服务器也不会发送重定向响应)。
如果您仍然希望在同一服务器上进行重定向,则您的服务器必须提供一个对您要提供的主机名有效的证书。您应该获得一个包含两个主题备用名称DNS条目的证书:mysite.com和www.mysite.com;这将允许您使用相同的证书为两个主机提供服务(如果需要,还可以使用重写规则)。
(如果您希望客户端支持服务器名称指示,也可以将其与两个不同的证书一起使用,但这通常适用于完全不同的主机名。)
当您申请mysite.com和www.mysite.com中的一个时,CA通常会颁发对其中一个有效的证书,有时不收取额外费用。
发布于 2012-05-24 02:14:54
将以下内容放在非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]https://stackoverflow.com/questions/10725357
复制相似问题