Nginx 中 return 和 rewrite 跳转

发布时间:2024年01月04日

?

目录

1.return 跳转

2.rewrite 跳转


如果把https的s去掉,就相当于去访问80端口了,https默认找的是443端口,而80端

口对应的网站我们设置了默认网站,所以如果你删掉了s再访问,就看到我们的默认网站了

?我们想要的效果是,输入 http://www.baidu.com ,可以自动访问 https://www.baidu.com

这个效果就需要对配置文件进行修改

1.return 跳转

来到我的网站配置目录下

 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等)
? ? ? }
}

2.rewrite 跳转

#使用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;
 ? ? ? }
}

文章来源:https://blog.csdn.net/m0_60494863/article/details/135397380
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。