人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

nginxでApacheのActionディレクティブと同様の動作を実現したいです。

過去にApche 2.4で、特定のディレクトリ配下でhtmlがリクエストされた場合、
以下のようにラッパー用のPHP(/wrapper.php)をCGIとして動作させていました。
-----------------------------------
AddHandler file-type .html
Action file-type /wrapper.php
-----------------------------------

上記を含むコンテンツをnginx/1.10.2に移行したのですが、
同様の動作を実現したいです。

【前提】
OS : Amazon Linux AMI release 2016.09
nginx 1.10.2
PHPバージョン: 5.6
php-fpm はインストール済みで、
nginx上でPHPが動作する環境はできています。

----------------------------------------------------------------------

【質問】
1. Apacheを使わずに同様の動作(htmlがリクエストされた場合、特定ファイルをCGIとして動作させる)が可能でしょうか?
2. nginxのみで可能な場合、必要な解決策と手順をご教示いただけると助かります。

Apacheを利用した方が良い、という意見は結構です。

●質問者: leech
●カテゴリ:コンピュータ ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● a-kuma3
●100ポイント ベストアンサー

nginx で CGI を起動するあたりは分かっている前提で書きます。

ある特定の CGI に振り向けたいなら、SCRIPT_FILENAME を上書きしちゃえば良いと思います。

server { 
 
 location ~ \.html(\?|$) { 
 fastcgi_split_path_info ^(.+\.html)(.*)$;

 ...
 include fastcgi_params; 

 ...
 fastcgi_param SCRIPT_FILENAME $document_root/wrapper.php
 
 } 
} 

.html な URL で searchpart が付くのかどうかわからないので、その辺りは適宜やってください。

【参考】
nginx fastcgi_params を include する箇所、割と皆間違ってるよね? - Qiita


leechさんのコメント
いただいた内容で無事動きました。 ありがとうございました!
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ