http重定向到https
使用 lnmp 搭建的环境建站程序是 wordpress域名 xxx.com 和 www.xxx.com
使用 lnmp ssl add 添加了免费证书
现在下面4个地址都可以访问
http://xxx.com
https://xxx.com
http://www.xxx.com
https://www.xxx.com
想实现 http 重定向到 https
方法一:
按照帖子 https://lnmp.org/faq/lnmp-nginx-301-rewrite.html 中操作:
在 listen 80 server 段
location ~ /.well-known { allow all; }
下面添加
location / { return 301 https://$host$request_uri; }
然后保存退出,重启nginx
/etc/init.d/nginx restart
提示:duplicate location / ...
#####################################################################
方法二:
还是找到/usr/local/nginx/conf/vhost中的配置文件(有2个)
一个是xxx.com.conf
一个是www.xxx.com.conf
在 xxx.com.conf 中 listen 80 server 段
在 server_name 下面
添加 return 301 https://$host$request_uri;
或者 return 301 https://xxx.com$request_uri; 都可以
保存退出,重启 nginx 后,http 重定向到 https 成功
浏览器不论输入 http://xxx.com 或 http://www.xxx.com 都自动跳转到 https 了。
######################################################
疑问一:
return 301 https://$host$request_uri; 和
return 301 https://xxx.com$request_uri; 有什么区别?
疑问二:
为啥我就改了 vhost 文件夹中 xxx.com.conf 一个文件
浏览器不论输入 http://xxx.com 或 http://www.xxx.com 都自动跳转到 https 成功了呢?
理论上应该把 vhost 文件夹中的两个文件都修改一下的啊
你不贴出配置文件来怎么找问题
duplicate location / 有可能是你之前有include 伪静态文件
$host 是根据域名判断
你单独写的域名就按填写的域名301
wordpress程序自带301,安装时的域名为主域名,不是主域名访问的会301跳转
页:
[1]