尝试设置.htaccess以将http://www.example.com的请求发送到https://example.com。使用像这样的.htaccess程序
RewriteEngine On
RewriteCond %{REQUEST_SCHEME}#%{HTTP_HOST} ^http#(?:www\.)?(.+)$
RewriteRule ^ https://%1%{REQUEST_URI} [NE,L,R]
在处理http://www.example.com(转到https://example.com)以及https://example.com或http://example.com时,做了正确的事。但是,当我尝试使用https://www.example.com时,Chrome会抛出“ERR_SSL_PROTOCOL_ERROR”。
我的SSL证书显然不包含example.com的子域名,所以也许这就是问题所在?有没有办法避免在www.example.com域上进行不必要的SSL处理?
修改:问题是 www.example.com不存在。创建子域后,以下htaccess代码有效:
# Map www.example.com to example.com
RewriteCond %{HTTP_HOST} ^www\.(.+) [NC]
RewriteRule ^ http://%1%{REQUEST_URI} [L,R=301]
#
# Ensure we are using https:
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
[仍不确定我的SSL证书的范围。是一个问题。]
答案 0 :(得分:0)
解决方案是添加子域www.example.com。 (见编辑过的问题。)