株式会社エスロジカル
株式会社エスロジカル
セキュリティプロダクツ提供
Web開発、システム開発、UNIXシステム構築
個人情報保護方針

技術ドキュメント

技術ドキュメント目次 -> Apache -> CGIのnphスクリプト

本技術ドキュメントは、ここしばらくメンテナンスをしておりません。
内容が古くなっている可能性などございますこと、ご理解を頂けますようお願いいたします。



[オススメ] 国内最安のSSL証明書(RapidSSL 2880円、ジオトラスト 10500円、ベリサイン 39900円)
[オススメ] SSL証明書のアフィリエイトプログラム(最大11700円/1件の報酬を獲得いただけます)

◆ ポイント

CGI のファイル名を nph- で始まるようにしておくことで、
CGI が nphスクリプトとして扱われるようになります。

◆ 解説

Apache を Webサーバーとして使用している環境では、
nphスクリプトと呼ばれるCGIを使用することで、
レスポンスコードやレスポンスヘッダについての制御が行えるようになります。

レスポンスコードも制御することができるので、
たとえば、
特定の種類のブラウザからのアクセスに対しては、
404 Not Found のレスポンスを返し
まるでそのURLに対応するファイルが存在していないように振る舞い、
それ以外のブラウザからのアクセスに対しては、
200 OK のレスポンスを返して通常のコンテンツを返す、
といったような制御がCGIのみで行えるようになります。

また、リダイレクト(CGIが Location: のヘッダを返して、別のURLに遷移させる)時の、
レスポンスコード 301(Moved Permanently)と 302(Found)の違いを制御するようなことも可能です。

nphスクリプトを使用するためには、特別な環境を用意する必要はなく、
通常どおりにCGIが使用できる環境を用意すればOKです。
(httpd.conf で、Options の設定や、拡張子が.cgiのファイルの設定を行ってください。)

CGI のファイル名を、
nph- で始まるようにするだけで、
その CGI は nphスクリプトとして扱われます。

以下のサンプルプログラムは、
IE(インターネットエクスプローラ)からのアクセスであれば、
レスポンスコード200で正常なコンテンツを出力し、
それ以外のブラウザからのアクセスであれば、404 Not Found を返すものになりますので、
興味のある方はお手元の環境で確認してみてください。

なお、
ファイル名が nph- で始まらないCGI(nphスクリプトではないCGI)で、
下記のようなことを行おうとすると、
CGIからの予期せぬヘッダの出力と判断されて、
Internal Server Error になってしまいますのでご注意ください。

#!/usr/pkg/bin/perl

# Copyright (C) 2006-2008 Slogical Corporation. All Rights Reserved.

if ($ENV{'HTTP_USER_AGENT'} =~ /IE/) {
        print <<EOF;
HTTP/1.1 200 OK
Connection: Keep-Alive
Content-type: text/html

<HTML>
<HEAD>
<TITLE>Found !!</TITLE>
</HEAD>
<BODY>
Found !!
</BODY>
</HTML>
EOF

} else {
        print <<EOF;
HTTP/1.1 404 Not Found
Connection: close
Content-Type: text/html

<HTML>
<HEAD>
<TITLE>Not Found</TITLE>
</HEAD>
<BODY>
Not Found
</BODY>
</HTML>
EOF
}

exit(0);




■ Apache についての他のドキュメント


■ 他のグループのドキュメント

Apache  /  Linux  /  FreeBSD  /  OpenSSL  /  Perl  /  HTTPプロトコル  /  Jakarta Tomcat  /  Java  /  NetBSD  /  Oracle  /  PostgreSQL  /  UNIX の C言語  /  UNIX のコマンド  /  Windows  /  bind  /  システム運用TIPS

アンケートにご協力をお願いいたします。

1. この技術ドキュメントへの評価をご選択ください。
大変良い  良い  普通  悪い  大変悪い  ノーコメント

2. ご感想をご自由にお書きください。



自社運営サイト: SSL証明書 / 改ざん検出 / 秘密分散法 / 暗号化ソフト / OpenIDサイト一覧 / IPアドレス表示 / リンク切れチェック / RapidSSL / ジオトラスト / ベリサイン / SSL

Copyright (C) 2006-2008 Slogical Corporation. All Rights Reserved.
ご意見などは、こちらのお問い合わせ用ページ からお願いいたします。

本サイト上の文書で記載または紹介している会社名、商品名は一般に各社の商標または登録商標です。
本サイト上の文書中では、TM マークおよび R マークを明記していない場合があります。