1

我正在用 apache 和 web.py 编写一个简单的“Hello world”。该应用程序在我去时有效

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 模式更改为“。*”将起作用。

但是,也许你应该在你的 apache 配置中而不是在 webapp 中修复它。添加规则以将 /webapp 重定向到 /webapp/。

于 2012-08-07T01:45:45.637 回答
0

如果你想让首页由类hello处理,你只需要这样:

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

还是我误解了你的意图?

于 2012-08-06T23:40:47.113 回答
0

@Anand Chitipothu 是对的。

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 回答