2012-08-06 92 views
1

我正在用apache和web.py編寫一個簡單的「Hello world」。與web.py匹配的URL

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() 

我需要改變以匹配這兩者嗎?

回答

3

當URL是「http://sandbox-dev.com/webapp」時,web.py將其視爲「」,而不是「/」。因此,將url格式更改爲「。*」將起作用。

但是,可能你應該修復你的Apache配置,而不是在webapp。添加規則以將/ webapp重定向到/ webapp /。

0

如果你想有頭版由類你好進行處理,所有你需要的是這樣的:

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

還是我誤解你的意圖?

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/