1

apacheとweb.pyを使用して単純な「Helloworld」を作成しています。私が行くとアプリは動作します

http://sandbox-dev.com/webapp/

しかし、私が行くときではありません:

http://sandbox-dev.com/webapp

私の直感(明らかに間違っている)は、次のコードがこれらのアドレスのいずれかに一致するだろうということでした。

import sys, os
abspath = os.path.dirname(__file__)
sys.path.append(abspath)
os.chdir(abspath)

import web

urls = (
      '/.*', 'hello',
      )

class hello:
      def GET(self):
          return "Hello, web.py world."

application = web.application(urls, globals()).wsgifunc()

これらの両方に一致させるには、何を変更する必要がありますか?

4

3 に答える 3

3

URLが「http://sandbox-dev.com/webapp」の場合、web.pyはそれを「/」ではなく「」と見なします。したがって、URLパターンを「。*」に変更すると機能します。

ただし、おそらく、webappではなくapache構成で修正する必要があります。/webappを/webapp/にリダイレクトするルールを追加します。

于 2012-08-07T01:45:45.637 に答える
0

フロントページをクラスhelloで処理しようとしている場合、必要なのはこれだけです。

urls = (
  '/', 'hello',
  )

それとも私はあなたの意図を誤解しましたか?

于 2012-08-06T23:40:47.113 に答える
0

@AnandChitipothuは正しいです。

http://sandbox-dev.com/webapp/ matches '/'

http://sandbox-dev.com/webapp matches '' #empty string

したがって、webpyで修正したい場合は、次のように記述できます。

urls = (
    '.*', 'hello'    #match all path including empty string
    )

またはリダイレクトクラスを追加します

urls = (
    '/.*', 'hello',  
    '', 'Redirect'
    )
class Redirect(object):
    def GET(self):
        raise web.seeother('/')    # this will make the browser jump to url: http://sandbox-dev.com/webapp/
于 2012-09-01T22:46:06.230 に答える