skillup

技術ブログ

サーバー・ネットワーク

nginxのlocationディレクティブ内のリダイレクト処理について

投稿日:2016年8月4日 更新日:

nginxのlocationディレクリブ内のリダイレクト処理に関して。

結構長い間携わっていますが、適当に理解していた部分が多かったので再度復習です。

特にドメインのサブディレクトリでサービスを運用しようとなったときにはまることが多いです。

root

nginxのrooは読んで字のごとくrootディレクトリです。ドメインは基本的にこの後に追加されます。

例えばrootが/var/www/htmlになっており、http://sample.com/hoge/foo.phpとアクセスすると

root + ドメイン以下のhoge/foo.phpとなり /var/www/html/hoge/foo.phpにアクセスすることになります。

rewrite

読んで字のごとくURLの書き換えを行います。

例えば/var/www/html/hoge/html直下にアクセスしたい、だけどルートディレクトリはvar/www/htmlにしたいときは一筋縄ではいきません。

http://sample.com/hogeでアクセスした場合に/var/www/html/hoge/html/直下にアクセスさせなければいけません。

その場合下記のように書きます。

この手のフレームワークは結構あるので要注意。

ちなみにrewrite_log onと書いてあげることでログを見ることができます。

Nginx の rewrite(リダイレクト) をデバッグする

try_files

アクセスの優先順位を決めます。

などと書いた場合には

  1. $uriというファイルを見に行く ($uriはドメイン以下のurlの部分)
  2. 1がなければ$uriというディレクトリを見に行く
  3. 2もなかった場合,/hoge.htmlというファイルを見に行く

という意味になります。

下記はnginxのわかりやすいリンクです。

https://gist.github.com/kenjiskywalker/4596258

nginxでFuelPHPを使うためのrewrite設定方法

注意点

nginxでファイルを読み込むときにcss/js/画像ファイルも有効に仕上げないと読み込まれないケースがあります。

上記のような記述を書いてあげましょう。

nginxの設定ではまった事

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

執筆者:


comment

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

関連記事

no image

supervisorによるデーモン化

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

no image

herokuでのLet’s Encrypt設定

herokuで運用しているアプリでhttps設定(Let’s Encrypt)をしたいという要望があり、調査、設定をすることに。 当然herokuでなくても大丈夫です。 過去に行ったhtt …

no image

cakePHPでのサブディレクトリ(apache)

apache使用時、cakePHP2系をサブディレクトリで使いたいときの運用法に関して。通所通りですとファイルにアクセスできないので、URLのリライトをうまくしないといけません。下記に設定例をかきます …

no image

AWSセキュリティグループについて

AWSのセキュリティグループに関して。 AWSには標準でセキュリティグループという概念があり、それぞれのインスタンスに対して、アクセスするパケットをポート番号で制御でき、この定義をセキュリティグループ …

no image

herokuでのhttpd.conf設定

前回の記事でLet’s EncryptでSSL設定する場合、 http://ドメイン/.well-known/ というURLにアクセスする必要があります。 ただherok …