1

次の小さなスクリプトを、 CherryPy 3.2.2に基づくスタンドアロン アプリとして実行しています(実際には、修正しようとしている内容を示すための圧縮バージョンです)。

import cherrypy
from cherrypy import _cperror

class MyApp:
  def __init__(self, **kwargs):
    if ('recursive' in kwargs) and kwargs['recursive']:
      return
    cherrypy.tree.mount(MyApp(recursive=True), '/cgi-bin', {})

  def error_page(status, message, traceback, version):
    error_template = """\
<html><head><title>%s</title></head>
<body><h1>%s</h1><p>%s</p></body>
</html>"""
    return error_template % (status, status, message)

  @cherrypy.expose
  def script_name(self, **kwargs):
    return str(kwargs)

  favicon_ico = None
  _cp_config = {'error_page.404' : error_page}

if __name__ == '__main__':
  cherrypy.quickstart(
      MyApp(),
      config = {
        'global':{
          'server.socket_host':'0.0.0.0',
          'server.socket_port':8080,
          }})

/cgi-bin下または一般的にどこでもURL をフェッチすると、期待される結果が得られます。

404お探しのページが見つかりませんでした

パス「/」が見つかりませんでした。

ただし、「PATH_INFO」を渡すものを取得すると、次のよう/cgi-bin/script_name/foobarになります。

404お探しのページが見つかりませんでした

指定された URI に一致するものはありません

後者の場合、前者と同じエラー メッセージ (メッセージに記載されている実際のパスは変数のみ) が表示され、URI の下でコンテンツを提供できることを確認するにはどうすればよい/cgi-bin/script_nameですか?

4

0 に答える 0