?
目录
如果把https的s去掉,就相当于去访问80端口了,https默认找的是443端口,而80端
口对应的网站我们设置了默认网站,所以如果你删掉了s再访问,就看到我们的默认网站了
?我们想要的效果是,输入 http://www.baidu.com ,可以自动访问 https://www.baidu.com
这个效果就需要对配置文件进行修改
来到我的网站配置目录下
cd /etc/nginx/conf.d/
?然后对www.fly.top.conf 配置文件进行修改,增加以下的 server 段
server {
? ? ? access_log off; # 这段配置是专门用来做跳转用的,所以日志就不用记录了,off就是关闭跳转行为的日志记录
? ? ? listen ? ? ? 80;
? ? ? server_name www.fly.top;
? ? ? location / {
? ? ? ? ? return ? ? ? 302 https://www.fly.top$request_uri; # 当用户访问 www.fly.top的80端口时,自动跳转到https网址。
# $request_uri的意思是网址uri,这个访问http://www.wulaoban.top网址后面不管加什么内容,不管访问哪个页面路径,都直接跳转到https
# URL: 协议(http/https):// + 主机(ip/域名) + 端口(80/443) + uri(/xx/index.html或者/xx/xx.jpg等)
? ? ? }
}
#使用rewrite跳转
server {
? ? ? access_log off;
? ? ? listen ? ? ? 80;
? ? ? server_name www.fly.top;
? ? ? location / {
? ? ? ? ? rewrite ^/(.*) https://www.fly.top/$1 redirect; ?# redirect代表
302状态码,临时跳转,^代表网址https://www.fly.top,/(.*)其实就是匹配uri,$1表示()中
匹配到的内容,也就是.*匹配到的内容
? ? ? ? # rewrite ^/(.*) https://www.fly.top/$1 permanent; # permanent代表
301状态码,永久跳转
? ? ? }
}
静态?ip?的这个?NAT?模式的虚拟机不能上网因,是被?NetworkManager?给干扰
# 在CentOS中有NetworkManager和network两种网络管理工具,如果这两种服务都工作时会产生冲突进而
导致机器无法联网。
systemctl stop NetworkManager
systemctl disable NetworkManager
# 再重启网卡
systemctl restart network
route -n # 看到有网关了。
配置额外的跳转
server {
? ? ? listen ? ? ? 80;
? ? ? server_name www.fly.top;
? ? ? location / {
? ? ? ? ? return ? ? ? 302 https://www.fly.top$request_uri;
? ? ? }
}
server {
? ? ? listen ? ? ? 80;
? ? ? server_name fly.top; ?# 用户输入不带www的时候也能跳转到https的网址上
? ? ? location / {
? ? ? ? ? return ? ? ? 302 https://www.fly.top$request_uri;
? ? ? }
}