islands5 blog

日々起こったことを共有したり、思ったこと、勉強したことを書いていくブログ。普段はRailsやAWSを活用したWeb系の開発をやってます。

1階層深いパスへリダイレクトする方法

1階層深くリダイレクトする。

久々にnginxの設定を変更する機会があって、わりとハマってしまった。

要件はこんな感じ

/数値(4桁以上)のリクエストを/hoge/数値(4桁以上)へリダイレクトする

例えば/1234 => /hoge/1234みたいな感じ
ただし/1234/みたいなケースはリダイレクトしないようにする

自分が検証してみた感じ結果は2種類

        location ~ '^/([0-9]{4,})$' {
          return 302 /hoge/$1;
        }
        location / {
          rewrite '^/([0-9]{4,})$' /hoge/$1 permanent;
        }

自分の好みでゆうと前者の方なんだけど、パフォーマンス的な違いはあるんだろうか???
まだまだ勉強が足りないorz

ちなみにハマってしまったのはキャッシュの影響で設定が反映されなかったこと
もしやと思ってシークレットモードでリクエストを投げたら正常に動作したので、ブラウザ側のキャッシュなのかなーと思っている。

皆さんパスの書き換えの時はシークレットモードを使いましょう!

nginx実践入門 (WEB+DB PRESS plus)

nginx実践入門 (WEB+DB PRESS plus)