2010-06-09 1 views

Répondre

4

Vous ne pouvez pas vraiment réécrire les URL en soi, mais vous pouvez utiliser des groupes d'expression régulières pour effectuer une sorte similaire de chose.

Dans votre fichier app.yaml, essayer quelque chose comme:

handlers: 
- url: /site/(.+) 
    script: site.py 

Et dans votre 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) 

Que se passe-est, tout ce que vous avez après /site/ dans l'URL de la requête sera être passé à la méthode de SiteHandler dans le paramètre site. De là, vous pouvez faire tout ce que vous voulez faire sur /details?domain=yahoo.com, ou simplement rediriger vers cette URL.

+0

Réponse parfaite! merci beaucoup d'être si rapide en réponse. – demos

+3

Notez que l'expression rationnelle dans app.yaml peut être tout ce qui correspond, et elle n'a pas besoin des parenthèses de capture. Habituellement, vous utiliseriez. * Pour tout envoyer à votre script, et utilisez des expressions rationnelles plus spécifiques (avec les parenthèses de capture) dans votre application WSGI. –

Questions connexes