我是靠谱客的博主 怕黑高山,最近开发中收集的这篇文章主要介绍地址重写,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

地址重写

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

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

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的话可以避免这个情况

最后

以上就是怕黑高山为你收集整理的地址重写的全部内容,希望文章能够帮你解决地址重写所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部