搜索
首页php教程php手册nginx rewrite常用示例

nginx rewrite常用示例

相信大家在日常运维工作中如果你用到nginx作为前端反向代理服务器的话,你会对nginx的rewrite又爱又恨,爱它是因为你搞定了它,完成了开发人员的跳转需求后你会觉得很爽,觉得真的很强大,恨它是因为当一些稀奇古怪跳转的需求时候你会没有头绪、百般调试、上网求神拜佛都搞不定的时候真是想死的心都有了,当然网上也有很多nginx rewrite的经典示例,但是我感觉对我的工作都没有太大的帮助。下面是我工作中遇到的一些rewrite示例。提供给大家分享。
一、访问http://www.abc.com正常,现在需要访问abc.com,直接跳转到http://www.abc.com。
<ol style="margin:0 1px 0 0px;padding-left:40px;" start="1" class="dp-css"><li>server {</li><li>listen 80;</li><li>server_name abc.com;</li><li>access_log  off;</li><li>rewrite (.+) $scheme://www.$host$1 permanent;</li><li>}</li></ol>
二、如果你们域名是http://www.abc.com,现在想换一个域名http://www.def.com了,又不想失去之前域名的访问量,需要配置跳转。
首先需要在你的server_name里面把www.abc.com和www.def.cn都写上。
然后做如下配置:
<ol style="margin:0 1px 0 0px;padding-left:40px;" start="1" class="dp-css"><li>location / {</li><li>if ($host = 'www.abc.com')</li><li>{</li><li>rewrite ^/(.*)$ http://www.def.com/$1 permanent;</li><li>}</li><li>}</li></ol>
三、跳转维护页面,比如今天维护,想挂一个维护页面,希望除某些特定的IP地址能正常访问,因为需要测试。其余所以的IP地址都是访问维护页面,这个需求我之前好像写过,但是今天写的有点不一样。在server里面添加如下内容:
<ol style="margin:0 1px 0 0px;padding-left:40px;" start="1" class="dp-css"><li>set $rewrite true;</li><li>if ($remote_addr = "xxx.xxx.xxx.xxx") {</li><li>set $rewrite false;</li><li>}</li><li>if ($rewrite = true) {</li><li>rewrite (.+) http://www.abc.com/maintenance.html;</li><li>}</li><li>location = /maintenance.html {</li><li> root /var/vhost;</li><li>}<br /></li></ol>
四、比如现在你的域名是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
<ol style="margin:0 1px 0 0px;padding-left:40px;" start="1" class="dp-css"><li>location /post {</li><li>rewrite (.+) http://www.abc.com/bbs$1 permanent;</li><li>}</li></ol>
五、基于uri的跳转
<ol style="margin:0 1px 0 0px;padding-left:40px;" start="1" class="dp-css"><li>if ($request_uri ~* ^/note\.php\?product_code=(.*)$) {</li><li>rewrite (.*) http://www.abc.com permanent;</li><li>}</li></ol>
<ol style="margin:0 1px 0 0px;padding-left:40px;" start="1" class="dp-css"><li>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$) {</li><li>rewrite (.*) http://www.abc.com/list permanent;</li><li>}</li></ol>
六、基于目录下面文件的跳转
<ol style="margin:0 1px 0 0px;padding-left:40px;" start="1" class="dp-css"><li>location ~* /upload/.*\.php$ {</li><li>return 404;</li><li>}</li></ol>
七、最普通的url到url跳转
<ol style="margin:0 1px 0 0px;padding-left:40px;" start="1" class="dp-css"><li>location ~* ^/ab/maintain/main.html {</li><li>rewrite (.+) http://www.abc.com/maintain/main.html permanent;</li><li>}</li></ol>
虽然例子举不全,可能还有一些其它更好的跳转示例,以后再补充。有不对的地方欢迎大家拍砖。







声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。