J'ai un tableau de bord simple pour mon site. Voici la directive: Ça fonctionne pour tous les articles après / tableau de bord. Par exemple, / utilisateurs ou / pages - toutes les opérations de CRUD fonctionnent comme prévu. P> Le fichier index.php à / tableau de bord est mon "contrôleur". Il analyse l'URL et comprend et exécute des scripts à partir de là. P> Par exemple: / tableau de bord / groupe / EDIT / 123456 Strong> fonctionne comme prévu et je reçois la page d'édition du numéro de groupe 123456 . p> mais lorsque je posterai de cette page à / tableau de bord / groupe / mise à jour, il sert /dashboard/group/index.php strong> p> donc, dans Le premier exemple, la page d'édition est chargée et l'URL en haut de l'écran ne change pas. p> Dans le deuxième exemple, NGinx change l'URL afin que mon script ne puisse pas obtenir les pièces d'URL pour faire le Job. P> Je pensais que cela peut avoir quelque chose à voir avec la poste, mais j'ai d'autres formes qui utilisent la poste sans problème. P> En plus, ou éventuellement un indice, try_files retourne / tableau de bord / groupe strud> /index.php tandis que la directive doit renvoyer /dashboard/index.php.< Je suis à cela quelques heures et je suis à court d'idées. Toutes les pensées? P> Quand je Parcourir strong> to / Dashboard / Mise à jour / Mise à jour, NGinx montre le page comme prévu. C'est seulement quand je again, au moins , il devrait m'envoyer à /dashboard/index.php et non /dashboard//index.php. p> p>
3 Réponses :
Vous n'envoyez pas tout après ou P> / tableau de bord code> Essayez ceci:
location /dashboard {
try_files $uri /dashboard/index.php?$query_string;
}
Merci pour la réponse. Je pose les données de formulaire afin qu'il n'y ait pas de paramètres d'URL supplémentaires.
Vous avez écrit "dans le deuxième exemple, Nginx change l'URL afin que mon script ne puisse pas obtenir les pièces d'URL pour faire le travail.". Cette réponse peut résoudre ceci.
Pour être clair, j'ai essayé cela - j'ai essayé d'obtenir VS Post et obtenu le même résultat.
au lieu de essayez p>
Merci pour votre réponse. Ne fonctionne toujours pas. Je ne pense pas que Nginx utilise cette directive de localisation car elle serait / devrait retourner /dashboard/index.php à tout le moins. Au lieu de cela, il retourne /dashboard/group/index.php
Vous êtes-vous assuré de tester la configuration à l'aide de sudo nginx -t, puis de redémarrer ou de recharger Nginx? Nginx ne met pas automatiquement à jour ses configurations avant de le dire ou de le redémarrer.
Oui, chaque fois que je fais un changement, Nginx -t et redémarrer
J'ai conclu que j'ai un problème de cache. La directive de localisation fonctionne sur tous les articles que je n'ai pas encore accessibles. p>
Donc, ma configuration - comme décrit - fonctionne comme il se doit. P>
Je dois juste comprendre comment effacer mon cache (qui n'est pas configuré dans Nginx que je peux voir!) P>
Merci à tous ceux qui ont aidé! p>
Premier coup d'œil On dirait que le comportement peut être causé par d'autres parties de votre configuration. Éliminez le problème en commentant tout le reste, puis apportez-le en bloc par bloc
C'est peut-être votre application faire une redirection ici? Utilisez un client comme
curl -is -xpost http: // .. code> ou facteur pour éviter les problèmes avec plusieurs redirections donnant de mauvais indices, cache de navigateur, etc. tout en débogage du problème