ある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」という名前だと,何か定義が書かれているようなページだなあ.