skillup

技術ブログ

サーバー・ネットワーク

rewriteディレクティブ

投稿日:2016年12月11日 更新日:

リクエストURIを条件に応じて書き換えたり、リダイレクトする機能を使うときはrewriteを使います。こちら非常によく使う機能です。

具体的な例を見ていきましょう。

これはフレームワークでみられますが、パスをクエリストリングに変更する設定例です。例えば/users/1などでアクセスがあった場合、/show?users=1に書き換えられ処理が行われます。

この例でも使用しているようにrewrite表現部分の()内の値をリプレイスメント内の$1で参照しています。$1なのあとの?はもとのリクエストのクエリストリングを無視することを意味します。

例えば/user/1?key=valueのようなアクセスがあった場合、/show?user=1?key=valueに書き換えられるのを防ぐことができます。

rewriteディレクティブは下記のような記述方法で設定します。

rewrite   正規表現  リプレイスメント  フラグ

フラグ一覧

なし             rewriteを実行し、そのまま処理を継続
last              rewriteを実行し、すべてのlocationを対象に再度処理をはじめから実行
break           rewriteを実行し、一度実行したlocationは対象外にして処理をはじめから実行
redirect        ステータスコード302でリダイレクト
permanent    ステータスコード301でリダイレクト

よくあるrewriteパターン

検索の実行

ユーザープロファイルページ

複数の引数

1つのパスに複数の情報

参考文献

Nginx入門

-サーバー・ネットワーク
-, ,

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

no image

CIツールを使ったオートデプロイに関して

gitlabをあるプロジェクトで使っていますが、自動デプロイについて色々調べなんとかできたのでメモしておきます。 結論から書きますと下記のような手順でいけます。 1.まずデプロイしたいサーバーに鍵認証 …

no image

herokuでMySQL

昨日に続き、heroku+MySQLのメモです。 herokuはディフォルトではPostgreSQLですが、アドオンを使うとMySQLも使えるようになります。 使い方ですが、herokuの管理画面でク …

no image

supervisorによるデーモン化

えー実務で任意のプログラムをデーモン化させて処理をするという実装があったのでメモ。 Contents1 デーモンとは?2 Supervisor2.1 インストール2.2 実行プログラム2.3 サービス …

no image

zabbixオリジナルアイテム&トリガー

zabbixは標準でもかなりのアイテム&トリガーが入っていますが、オリジナルなものを入れたいときも当然あるかと思います。 そんなときにオリジナルのアイテム&トリガーを入れることができます。 実務ではg …

no image

Code4兄弟に関して(CodeCommit,CodeDeploy,CodeBuild,CodePipeline)

前回の記事で書いたCodeDeploy以外にもCI/CD絡みで色々と使用するサービスがあるので自分用にメモ。 Code兄弟なっていうようで・・・・ Contents1 各サービス1.1 CodeCom …

アーカイブ