Python 2.7
Mac OS
やりかた
- metaタグでリダイレクトするようなhtmlを吐く.pyを書く
- CGIHTTPServerを立ち上げる
- 作った.pyにアクセスする
$ mkdir cgi-bin
$ vim cgi-bin/redirect.py
#! /usr/bin/python
print "Content-type: text/html;\n\n"
print "<meta http-equiv=\"refresh\" content=\"0;URL=http://qiita.com/\">"
$ chmod +x cgi-bin/redirect.py
$ python -m CGIHTTPServer 8000
ブラウザでlocalhost:8000/cgi-bin/redirect.pyにアクセス
経緯
通常Locationを使うとリダイレクトできるんですが、
Python 2.7.12 documentationによると、HTTPレスポンスに書く形でのリダイレクトはできないとのことで、諦めて別のWEBサーバを使いがちです。
注釈 CGIHTTPRequestHandler クラスで実行される CGI スクリプトは HTTP コード 200 (スクリプトの出力が後に続く) を実行に先立って出力される (これがステータスコードになります) ため、リダイレクト(コード302) を行なうことができません。
しかし、今回のような方法で実現することもできます。
できるかどうかと使うかどうかは別の話ですね。
補足
Python 2.7の環境で確認しています。
ただ、細かいバージョンで違いがあるような技術ではないです。
3系だと、これですが、リダイレクトということで考えることは同じです。
また、最小手順を示すために色々削って確認しています。
各々でちゃんと書いてください。