我正在用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()
为了匹配这两者,我需要更改什么?
答案 0 :(得分:3)
当网址为“http://sandbox-dev.com/webapp”时,web.py将其视为“”,而不是“/”。因此,将URL模式更改为“。*”将起作用。
但是,您可能应该在apache配置中修复它,而不是在webapp中修复它。添加规则以将/ webapp重定向到/ webapp /.
答案 1 :(得分:0)
如果您想通过 hello 类处理首页,您只需要:
urls = (
'/', 'hello',
)
或者我是否误解了你的意图?
答案 2 :(得分: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/