nginx rewrite常用樣本_PHP教程

來源:互聯網
上載者:User

nginx rewrite常用樣本


相信大家在日常營運工作中如果你用到nginx作為前端反向 Proxy伺服器的話,你會對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. }
雖然例子舉不全,可能還有一些其它更好的跳轉樣本,以後再補充。有不對的地方歡迎大家拍磚。







http://www.bkjia.com/PHPjc/1119674.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/1119674.htmlTechArticlenginx rewrite常用樣本 相信大家在日常營運工作中如果你用到nginx作為前端反向 Proxy伺服器的話,你會對nginx的rewrite又愛又恨,愛它是因為你搞...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.