地址重写

地址重写

可以定义用户的访问路径可以看到的实际内容

修改配置文件:为那个虚拟主机定义地址重写就在哪个虚拟主机的{}里面(改完之后需要重启)

rewrite 匹配路径 实际看到的页面 选项

rewrite /a.html /b.html   /用户访问的路径中包含a.html的话就跳转到b.html

rewrite ^/a\.html$ /b.html ; //访问路径必须是a.html

rewrite ^/a.html$ /b.html redirect;  //redirect(重定向)的作用是显示对应的路径(跳到那显示哪)

rewrite / http://www.baidu.com;    //访问本机IP的网站可以跳转到百度

rewrite /(.*) http://www.tmooc.cn/$1;    //访问老网站会跳到新网站,同时会携带所访问的页面,()是正则,代表保留(复制)  $1表示,粘贴之前第一个小括号保留的内容

不同浏览器跳转到不同页面

mkdir  html/firefox

echo  firefox~~  >  html/firefox/abc.html

echo  others~~  >  html/abc.html

火狐专用页面    火狐访问192.168.2.5/abc.html时可以看到html/firefox/abc.html里面内容

其他专用页面    其他访问192.168.2.5/abc.html 时可以看到html/abc.html里面内容

修改配置文件,删除原有地址重写,原地添加

if  ($http_user_agent  ~*  firefox){   //如果用户使用了火狐浏览器

rewrite  /(.*)  /firefox/$1;  //就进行地址重写操作,让用户看到火狐专属页面

}         

//$http_user_agent是nginx的内置变量,存储了用户的信息,比如用的什么浏览器

~匹配正则  *忽略大小写

改完后sbin/nginx  -s  reload 

使用火狐浏览器查看192.168.2.5/abc.html可以看到之前html/firefox目录下的页

面,非火狐浏览器打开192.168.2.5/abc.html看到的是html下的页面

==========================================================

选项

redirect    临时重定向   状态码  302   爬虫不感兴趣

permanent  永久重定向  状态码  301   爬虫感兴趣

以下两种写法对于用户来说效果一样,但是对百度这样的网站不同

rewrite  ^/a.html$  /b.html  permanent;

rewrite  ^/a.html$  /b.html  redirect;

分别写完可以用 curl  192.168.2.5/a.html 看到状态码

last  不再读其他rewrite

echo  "nginx-c~~"  >   html/c.html     //准备素材c页面

rewrite  /a.html  /b.html  last;   //不加last的话nginx会把多个rewrite语句综合处理

结果就是看a页面结果跳到c页面了,加了last的话可以避免这个情况

rewrite  /b.html  /c.html ;

break  不再读其他语句

        location / {     //此处为默认的location

rewrite /a.html /b.html break;    //将last改为break可以阻止后面的语句,此处

如果是last则无法阻止后面location语句中的rewrite语句

            root   html;

            index  index.html index.htm;

        }

location /b.html {    //这里是新添加的location

rewrite /b.html /c.html;

}

结果就是看a页面结果跳到c页面了,加了break的话可以避免这个情况

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值