我有一个带有子域名的Apache CentOS(最新)网站,我想要使用http的普通用户,以及在使用购物车时使用https; 我使用非www,所以我想redirect所有www到非wwwurl如下; 现在我遇到的问题是https ssl url; 我有一个单一的SSL证书(不是通配符),所以我需要所有的wwwredirect到非www; 但我得到的页面“这个连接是不可信的”,迫使用户除了这个证书或退出; 除了它之后,它会做redirect; 但不是之前,我怎么能解决这个问题,所以他们没有得到该网页?
RewriteCond %{HTTPS} !=on RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] RewriteRule ^(.*)$ http://%1/$1 [R=301,L] RewriteCond %{HTTPS} on RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
如果我正确理解你的话
http://yourdomain.com -> no redirect http://www.yourdomain.com -> redirects to http://yourdomain.com https://yourdomain.com -> no redirect, works fine https://www.yourdomain.com -> Untrusted warning, then redirects to https://yourdomain.com
假设我已经正确地理解了你,这就是SSL的本质。 如果任何人尝试使用“yourdomain.com”证书在除“yourdomain.com”以外的任何主机名上连接到您的服务器,则会出现此错误。 所以没有办法有人连接到https://www.yourdomain.com并没有收到一个错误(除非你注册一个密钥…这不是你想要做的)。
在这种情况下,或多或less地按照预期工作。 去错误的url的人会被抱怨,直到他们去正确的。
如果您只需要同时支持您的非www和www域名,您可以使用一个证书来完成。 用htaccessredirect不起作用,你仍然会得到“不可信”的错误。 这是https://www.domain.com/和https://domain.com/,而不必购买2个单独的