Nginx rewrite配置規則

2119 ワード

rewrite文法
server {
    rewrite {  } {    } {    } ;
}
1、ルール:マッチングしたいターゲットurl 2、指向性パスを文字列または正規表現することができます。ルールにマッチした後に方向性を決めるパスを表します。ルールに正則がある場合、正規のTrapパケット3、書き換えタイプは$indexを使用して表されます。
  • last:Apphe里徳(L)のタグに相当し、rewriteが完了したことを示し、ブラウザアドレスバーのURLアドレスが不変であることを示す
  • break;このルールのマッチングが完了したら、マッチングを終了し、後のルールに一致しなくなります。ブラウザアドレスバーのURLアドレスは不変です。
  • redirect:302に戻ると、一時的にリダイレクトされ、ブラウザアドレスは、ジャンプ後のURLアドレス
  • を表示します。
  • permant:301を返して恒久的にリダイレクトします。ブラウザアドレスバーにはジャンプ後のURLアドレス
  • が表示されます。
    例をあげて説明する
    server {
        rewrite /last.html /index.html last;
        #    /last.html    ,        /index.html  
    
        rewrite /break.html /index.html break;
        #    /break.html    ,        /index.html  ,        
    
        rewrite /redirect.html /index.html redirect;
        #    /redirect.html    ,    302    /index.html 
    
        rewrite /permanent.html /index.html permanent;
        #    /permanent.html    ,    301    /index.html 
    
        rewrite ^/html/(.+?).html$ /post/$1.html permanent;
        #   /html/*.html => /post/*.html ,301  
    
        rewrite ^/search\/([^\/]+?)(\/|$) /search.html?keyword=$1 permanent;
        #   /search/key => /search.html?keyword=key
    }
    lastとbreakの違い:
  • は、301と302が単に状態コードだけを返すことができないため、リダイレクトされたURLも必要である。これは、return命令が301,302に戻らないためである。
  • lastは普通serverとifに書いていますが、breakは普通locationで
  • を使います。
  • lastは書き換え後のurlマッチングを終了しません。つまり、新しいurlはserverからマッチングフローをもう一度歩きます。breakは書き直した後のマッチング
  • と一致します。
  • breakとlastは、後続のrewrite命令
  • を実行し続けることができます。
  • locationでbreakに戻ると、その後のマッチングlocation
  • が直接に有効になり、停止される。
    server {
        location / {
            rewrite /last/ /q.html last;
            rewrite /break/ /q.html break;
        }
        location = /q.html {
            return 400;
        }
    }
    アクセス/last/時重は/q.htmlを書いて、新しいuriを使ってまたマッチングして、ちょうどlocaton=/q.と合致して、400に戻りました。訪問/break時に書き直します。breakに戻りましたので、直接停止しました。
    「Kおじさんブロックチェーン」を購読してください。ブロックチェーン技術の勉強に専念します。
    ブログのアドレス:http://www.jouypub.com
    略書ホームページ:https://www.jianshu.com/u/756c9c8ae984
    segmentfaultホームページ:https://segmentfault.com/blog/jouypub
    騰訊雲ホームページ:https://cloud.tencent.com/developer/column/72548