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

クリックジャッキング

Contents1 クリックジャッキングとは?2 被害3 対策 クリックジャッキングとは? 悪意のあるサイトの特定上の場所をクリックさせ、誤操作をさせ、意図しない機能を実行させられる可能性があります。 …

no image

メニュー系のCSS

よく迷うのでこれを機にまとめておこうかと。 Contents1 通常時のメニュー2 携帯(いわゆる縦のメニュー)3 ホバー時の画像選択4 小ネタ 選択されているときのメニュー 通常時のメニュー htm …

no image

Dockerfileでのコンテナ作成

dockerは通常はimageを取得し、コンテナを起動した後、自分独自にライブラリなどをインストールし、出来たものをcommitしますが、Dockerfileをつかえばこの一連の操作をファイルに記録し …

no image

CentOS7でのIP固定

日ごろ業務ではwindowsにVitrtualBox+VagrantにCentOSをいれていたのですが、スペックにややネックがあったため、今は使っていないPCにCentOS7を入れて開発企図して使うこ …

no image

Terraform入門(シンプルなEC2の構築)

前回の記事でcloudformationとterraformの比較や紹介をしましたが、terraformがとっつきやすかったため、簡単なサンプルとメモを。 Contents1 インストール2 実行手順 …

アーカイブ