Comment rediriger toutes les URL avec Google App Engine
Comment puis-je configurer l'application.fichier yaml pour rediriger toutes les Url vers une autre URL? Par exemple je veux http://test.appspot.com/hello ou http://test.appspot.com/hello28928723 pour rediriger vers http://domain.com.
Je ne suis que de servir les fichiers statiques à l'instant. Voici l'une de mes applications.fichier yaml:
application: testapp
version: 1
runtime: python
api_version: 1
handlers:
- url: (.*)/
static_files: static/index.html
upload: static/index.html
- url: /
static_dir: static
source d'informationauteur mistero | 2009-06-29
Vous devez vous connecter pour publier un commentaire.
vous pouvez rediriger toutes les requêtes facilement avec un python de gestionnaire. Quelque chose comme
Webapp2 a un haut-gestionnaire de redirection
Pas besoin de rouler votre propre gestionnaire; webapp2 vient déjà avec un.
La _uri argument est ce que le RedirectHandler classe utilise pour définir la destination. Il a fallu beaucoup de Google-Fu pour trouver de la documentation sur ce sujet, mais il fonctionne parfaitement dans mon application.
Mise à jour:
Je suppose que vous êtes au courant de cela, mais vous avez besoin de changer votre fourre-tout d'itinéraire à partir de:
(Python27 version):
Ou: (pré python27 version)
main.py est le fichier contenant le gestionnaire de requêtes + routes.
Remarque: Il n'est pas statique seule façon de gérer les redirections sur GAE en raison de la nature des fichiers statiques. Fondamentalement, il n'y a pas moyen de faire une redirection en application.yaml seul.
Tout ce que vous devez (remplacer
app-id
http://example.com
):app.yaml
:main.py
:Ici est un script python qui va faire la redirection:
Si vous voulez un statique-fichiers uniquement de faire des "redirections" puis ce faire:
Dans l'application.yaml, de mettre ce que le fourre-tout, à la fin du fichier:
Puis dans le root/redirect.html fichier, mettez ceci:
Cet exemple va rediriger tous les inconnus Url de la racine (c'est à dire, /). Si vous voulez une autre URL, en remplaçant simplement l' http://mydomain.com dans les endroits appropriés.
Aussi Evan réponse, pour rediriger toutes les requêtes que vous pourriez utiliser regexes faire quelque chose comme:
Pour officiel docs découvrez:
https://webapp-improved.appspot.com/api/webapp2_extras/routes.html
https://webapp-improved.appspot.com/api/webapp2.html#webapp2.Route.init
La redirection gestionnaire pour webapp2 (webapp2.RedirectHandler) mentionné dans une réponse précédente ne fonctionne pas pour les requêtes post, car il ne contient pas une méthode post (voir https://github.com/GoogleCloudPlatform/webapp2/blob/master/webapp2.py), de sorte que vous aurez besoin pour restaurer votre propre python gestionnaire si concerné avec les messages. Quelque chose comme ce qui suit: