毎日Learning

学んだことを共有します

SimpleHTTPServerを日本語URIに対応する方法

PythonのSimpleHTTPServerってめちゃ便利ですよね。

HTTPサーバーとしてアクセスしたいディレクトリのパス上で、

$ python -m SimpleHTTPServer

って実行するだけで、 http://localhost:8000 でアクセスできるようになるじゃないですかー。

でも、このSimpleHTTPServerですが、日本語のURIだとうまいこと表示できないんですよね。

たとえば、以下のディレクトリ構成でアクセスした場合なんですけど、

root
  |- index.html
  |- 日本語のでぃれくとり/
    |- index.html

このrootディレクトリ上で、SimpleHTTPServerを実行して、
http://localhost:8000/日本語のディレクトリ
ってURLをブラウザに入力すると、 404エラーになります。

これを解消するために、SimpleHTTPServerのSimpleHTTPRequestHandlerクラスを継承して、拡張して、日本語でも見つかるようにしました。

SimpleHTTPRequestHandler.translate_pathメソッドをオーバーライドしただけっていうシンプルなもんです。


Python2.7でSimpleHTTPServerをすると日本語URIが表示されないので表示される ...

以上です。