Mon site est multilingue et si un utilisateur demande une page sans spécifier le code de langue à deux lettres, il sera redirigé vers la langue appropriée (en utilisant IP ou les paramètres de cookies précédents). Par exemple, vous pouvez essayer d'aller au http://colnect.com et vous verrez que vous serez redirigé vers colnect.com/en ou colnect.com/es ou autre (53 langues sont supportées).Symfony: comment savoir si une requête va être 404 avant qu'elle n'arrive?
Le problème est quand je reçois des demandes fausses (la plupart du temps contre les robots collecteurs) tels que colnect.com/fdlghsweru mon code de redirection premier redirige (code 302) à colnect.com/en/fdlghsweru qui renverra 404. Ce signifie: * il y a deux demandes au lieu d'un -> plus la charge du serveur * Certains bots soit essayer colnect.com/fdlghsweru plus tard ou même croire qu'il existe
Le code que je l'ai fait actuellement situé dans MyUser :: setCulture()
Y a-t-il un bon endroit où je peux trouver le code seulement quand je sais qu'une action est sur le point d'être exécutée et de ne pas avoir 4 04? MISE À JOUR: ce que je fais actuellement est de vérifier mon code si $ sfRequest-> getParameter ('module') est l'un des modules valides dans mon application. Cela couvre la plupart des requêtes fausses mais pas celles créées par des bots défaillants qui ajoutent des paramètres bidon aux URL existantes.
Merci
Merci de votre réponse, mais je crains que cela ne m'aide pas. J'essaie de savoir qu'une action sera effectuée et non 404. La raison pour laquelle j'utilise myUser est parce que j'ai besoin de vérifier si la langue de l'utilisateur est définie. Dans un tel cas, si vous visualisez le site en espagnol et obtenez un lien d'un autre membre qui le voit en allemand, le site redirigera son lien/de/vers un lien/es/afin que vous puissiez toujours voir le site dans Espanol. Il est important pour moi de garder le/es/en tant que partie de l'URL, donc si vous envoyez le lien à un ami, la valeur par défaut (puisqu'il n'est pas un utilisateur) serait l'espagnol et pas une autre langue. – Collector