Nginx地址重写

目录

1、什么是地址重写

2、地址重写演示1

3、地址重写演示2

4、地址重写演示3


1、什么是地址重写

获得一个来访的URL请求,然后改写成服务器可以处理的另一个URL;

比如访问www.360buy.com会自动转换成www.jd.com,http://www.baidu.com会自动转换成https://www.baidu.com

语法格式:rewrite  regex  replacement   [flag]

【释】rewrite:改写;regex:旧地址栏,支持正则;replacement:新地址栏;flag:标签,可省

2、地址重写演示1

目标:将 web1.test.cn/a.html 地址重写成  web1.test.cn/b.html

server{

           listen  80;

           server_name   web1.test.cn;

           rewrite  "/a.html$"    /b.html             #旧地址是从"/"开始匹配,rewrite支持正则$

           ... ...

}

vim /usr/local/nginx/conf/nginx.conf

 这里因为a.html访问会直接跳转到b.html,所以实际a.html存不存在都没有关系,b.html需要实际存在,可以在/usr/local/nginx/html下手动创建;

/usr/local/nginx/sbin/nginx -s reload   #重新加载配置文件

浏览器访问测试(通用如果没有配dns需要手动加hosts域名解析):

 如上图可以看到,访问的URL是a.html,但是实际读取的是b.html,但是地址栏还是显示的是a.html,如果想要地址栏也显示跳转到b.html,可以在rewrite后面加一个redirect参数,如下:

server{

           listen  80;

           server_name   web1.test.cn;

           rewrite  "/a.html$"    /b.html     redirect      #将访问页面和地址栏都重写至b.html

           ... ...

}

/usr/local/nginx/sbin/nginx -s reload   #重新加载配置文件

浏览器访问测试:

 可以看到访问页面和地址栏都重写至b.html。

3、地址重写演示2

目标:将web1.test.cn/xx  地址重写成  www.baidu.com ,将整个域名改写

vim /usr/local/nginx/conf/nginx.conf

server {

            listen 80;

            server_name  web1.test.cn;

            rewrite   ^/    http://www.baidu.com; 

            # ^/ 是正则,表示匹配任何根开始的地址,即匹配web1.test.cn域名的"/"根后面不管跟的什么内容,都跳转到百度

               

... ...

}

/usr/local/nginx/sbin/nginx -s reload   #重新加载配置文件

浏览器测试,访问web1.test.cn/a.html或者web2.test.cn/a.html

4、地址重写演示3

目标:web1.test.cn/任意地址  重写成  www.baidu.cm/前面相同任意地址

如:web1.test.cn/xinwen  --->   www.gov.cn/xinwen

server {

           listen 80;

           server_name  web1.test.cn;

           #rewrite的正则和shell正则略微不一样,()表示复制,可以多个圆括号,$1表示调用粘贴前面第一个()的复制内容,.*是匹配所有,前面的$是结尾符;

           rewrite   ^/(.*)$     http://www.gov.cn/$1;

... ...

}

/usr/local/nginx/sbin/nginx -s reload   #重新加载配置文件

客户端浏览器访问测试,访问web1.test.cn/xinwen  ---> http://www.gov.cn/xinwen

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

桂安俊@kylinOS

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值