2018-03-15 10:33:48更新:修复二级域名访问http://www.yantuz.cn
时出现400 Bad Request:The plain HTTP request was sent to HTTPS port的问题。详情查看
越来越多的网站开启了HTTPS加密访问,而HTTPS也是以后的大势所趋。如果您还未开启Https,详见“申请免费SSL证书 升级HTTPS”。实现HTTPS之后要做的最后一步就是自动将http请求跳转到https页面。
nginx实现
对于用独立服务器的用户,可以通过修改nginx.conf文件来实现上述功能,在server中添加如下代码即可
if ($scheme = http) { return 301 https://$host$request_uri; }
.htaccess实现
如果用的是虚拟主机,或者不完全控制权的服务器,也可以通过.htaccess文件来实现。
.htaccess提供了针对目录改变配置的方法。
首先我们先找到.htaccess文件,该文件在网站位于网站根目录之下,通常是隐藏文件。如果找不到,检查是否开启了隐藏文件,或者直接用vim进行编辑,增加重定向命令。
RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
最后测试功能,比如在浏览器输入“http://yantuz.cn/
”,检测是否能重定向至“https://bak.yantuz.cn:8000/
”
修复The plain HTTP request was sent to HTTPS port
错误如图,大意是HTTP请求被发送到HTTPS端口了
解决方法
#修改nginx配置文件 vim /usr/local/nginx/conf/vhost/yantuz.cn.conf server { listen 80; listen 443 default ssl; #增加default属性 # ssl on #注释掉ssl on }
配置www.yantuz.cn的DNS解析为CNAME目标指向yantuz.cn