Home > Article > Backend Development > nginx rewrite常用示例_PHP教程
<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了,又不想失去之前域名的访问量,需要配置跳转。
<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,注意跳转后的参数也要保持一致。
<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>虽然例子举不全,可能还有一些其它更好的跳转示例,以后再补充。有不对的地方欢迎大家拍砖。