在appengine的app.yaml中指定自定义URL模式?
我想要一个自定义的网址,格式是这样的:
example.com/site/yahoo.com
这个网址会调用一个脚本,实际上是这样调用的:
example.com/details?domain=yahoo.com
请问可以通过app.yaml来实现吗?
基本的想法就是用“yahoo.com”这个输入去调用“details”。
1 个回答
4
你不能直接重写网址,但可以用正则表达式的分组来实现类似的效果。
在你的app.yaml文件中,可以试试这样的写法:
handlers:
- url: /site/(.+)
script: site.py
然后在你的site.py文件中:
SiteHandler(webapp.RequestHandler):
def get(self, site):
# the site parameter will be what was passed in the URL!
pass
def main():
application = webapp.WSGIApplication([('/site/(.+)', SiteHandler)], debug=True)
util.run_wsgi_app(application)
发生的事情是,任何在请求网址中/site/
后面的内容都会被传递到SiteHandler
的get()
方法中的site
参数里。这样你就可以在/details?domain=yahoo.com这个网址上做你想做的事情,或者直接跳转到那个网址。