登录  /  注册
首页 > php教程 > php手册 > 正文
nginx rewrite常用示例
php中文网
发布: 2016-06-13 08:42:08
原创
758人浏览过

nginx rewrite常用示例


相信大家在日常运维工作中如果你用到nginx作为前端反向代理服务器的话,你会对nginx的rewrite又爱又恨,爱它是因为你搞定了它,完成了开发人员的跳转需求后你会觉得很爽,觉得真的很强大,恨它是因为当一些稀奇古怪跳转的需求时候你会没有头绪、百般调试、上网求神拜佛都搞不定的时候真是想死的心都有了,当然网上也有很多nginx rewrite的经典示例,但是我感觉对我的工作都没有太大的帮助。下面是我工作中遇到的一些rewrite示例。提供给大家分享。
一、访问http://www.abc.com正常,现在需要访问abc.com,直接跳转到http://www.abc.com。
  1. server {
  2. listen 80;
  3. server_name abc.com;
  4. access_log off;
  5. rewrite (.+) $scheme://www.$host$1 permanent;
  6. }
登录后复制
二、如果你们域名是http://www.abc.com,现在想换一个域名http://www.def.com了,又不想失去之前域名的访问量,需要配置跳转。
首先需要在你的server_name里面把www.abc.com和www.def.cn都写上。
然后做如下配置:
  1. location / {
  2. if ($host = 'www.abc.com')
  3. {
  4. rewrite ^/(.*)$ http://www.def.com/$1 permanent;
  5. }
  6. }
登录后复制
三、跳转维护页面,比如今天维护,想挂一个维护页面,希望除某些特定的IP地址能正常访问,因为需要测试。其余所以的IP地址都是访问维护页面,这个需求我之前好像写过,但是今天写的有点不一样。在server里面添加如下内容:
  1. set $rewrite true;
  2. if ($remote_addr = "xxx.xxx.xxx.xxx") {
  3. set $rewrite false;
  4. }
  5. if ($rewrite = true) {
  6. rewrite (.+) http://www.abc.com/maintenance.html;
  7. }
  8. location = /maintenance.html {
  9. root /var/vhost;
  10. }
登录后复制
四、比如现在你的域名是http://bbs.abc.com,现在将这个域名下面的帖子访问都跳转到http://www.abc.com/bbs,注意跳转后的参数也要保持一致。
比如:http://bbs.abc.com/post/addpost/913.shtml跳转到http://www.abc.com/bbs/post/addpost/913.shtml
  1. location /post {
  2. rewrite (.+) http://www.abc.com/bbs$1 permanent;
  3. }
登录后复制
五、基于uri的跳转
  1. if ($request_uri ~* ^/note\.php\?product_code=(.*)$) {
  2. rewrite (.*) http://www.abc.com permanent;
  3. }
登录后复制
  1. if ($request_uri ~ ^/forum-(140|141|142|143|144|145|150|151|152|153|154|155|156|157|158|159|200|222|223|224|225|226|227|228)-(\d+).html$) {
  2. rewrite (.*) http://www.abc.com/list permanent;
  3. }
登录后复制
六、基于目录下面文件的跳转
  1. location ~* /upload/.*\.php$ {
  2. return 404;
  3. }
登录后复制
七、最普通的url到url跳转
  1. location ~* ^/ab/maintain/main.html {
  2. rewrite (.+) http://www.abc.com/maintain/main.html permanent;
  3. }
登录后复制
虽然例子举不全,可能还有一些其它更好的跳转示例,以后再补充。有不对的地方欢迎大家拍砖。







相关标签:
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 技术文章
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2023 //m.sbmmt.com/ All Rights Reserved | 苏州跃动光标网络科技有限公司 | 苏ICP备2020058653号-1

 | 本站CDN由 数掘科技 提供

登录PHP中文网,和优秀的人一起学习!
全站2000+教程免费学