nginx réécriture des données post
J'ai besoin de préserver l'envoi de données à une autre url
La réécriture fonctionne, mais le post de données est perdu
besoin pour publier des données à partir de user_info.php pour userhistory
location ~ user_info.php {
rewrite ^/.* http://testing.com/userhistory permanent;
}
Les données sont perdues. Comment puis-je conserver les données?
OriginalL'auteur meWantToLearn | 2015-01-06
Vous devez vous connecter pour publier un commentaire.
Fondamentalement, vous voulez rediriger automatiquement une requête POST à l'aide d'une redirection 301 moved permanently.
Cependant. ces rediriger sont spécifiquement interdites par la HTTP Spécifications qui stipule que:
Les spécifications également de noter:
Je crois que la deuxième situation est peut-être ce qui se passe, et que, si le serveur cible s'attend à publier des données, c'est la réception d'OBTENIR les données à la place.
Vos choix sont:
A. de Modifier le code pour travailler avec d'OBTENIR des données ou, mieux encore, POST et GET. I. E., regardez pour le POST et si pas, essayez d'OBTENIR des équivalents.
B. assurez-vous que le code reçoit publier des données en travaillant avec la spécification.
Vous pouvez être en mesure de réaliser des Choix B à l'aide de la proxy_pass directive pour répondre à la demande plutôt.
Quelque chose comme:
De cette façon, l'utilisateur n'est techniquement pas redirigés.
OriginalL'auteur Dayo
Vous avez juste besoin d'écrire un Nginx règle de réécriture avec le code d'état HTTP
307
ou308
:Code de Statut Http
307
ou308
doit être utilisé au lieu de301
, car il modifie la méthode de demande de POSTE pour OBTENIR. Reportez-voushttps://tools.ietf.org/id/draft-reschke-http-status-308-07.html#introduction
Également rediriger via
return
est de mieux par rapport àrewrite
selon nginx doc: https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/#taxing-rewritesOriginalL'auteur Amit Thawait
Dans ma conf-je utiliser try_files avec la regex
par exemple
OriginalL'auteur Peter Lai