わさっきhb

大学(教育研究)とか ,親馬鹿とか,和歌山とか,とか,とか.

シェルスクリプトのCGIでLocation

あるWebアプリケーションのメンテナンスをしていて,CGIにする意味がないし,保守の面でもよくないファイルを見つけました.「abc.cgi」という名前にしておきましょう.Cのソースファイルがあって,中身は,HTMLコンテンツをprintfで吐き出すというものです.
他から「abc.cgi」に飛んでくるページがあるようで,単純に削除ではまずそうです.といっても,パラメータの受け渡しはなさそうなので…静的なページ,たとえば「123.html」*1へジャンプさせるような「abc.cgi」を作ることにしました.
シェルスクリプトでいいでしょう.

#!/bin/sh
echo "Location: 123.html"

しかしうまく動作しません.真っ白ページが出てきます.
相対アドレスがダメなのか? 「http:」から始める書き方にしても,結果は変わりません.
そういえば「Location」はヘッダでした.そこで,ヘッダと(空の)ボディを区別する空行を出力するようにしました.

#!/bin/sh
echo "Location: 123.html"
echo

ふう.これでうまく動きました.

*1:「def.html」という名前だと,何か定義が書かれているようなページだなあ.