Dans un cadre MVC, j'ai un modèle avec un champ "identificateur". Ce champ peut être tout ce qui est utilisé par l'utilisateur comme identifiant unique. J'utilise ensuite ce champ d'identification dans les URL pour accéder aux ressources pertinentes.Quel est un moyen propre d'utiliser un "/" dans une partie d'une URL
/people/<identifier>/
Dans un tel cas, l'utilisateur utilise des identifiants du format 00/000
. Le rapide parmi vous aura repéré le problème tout de suite - comment savons-nous quelle partie est l'identifiant, et quelle partie de l'action?
La solution évidente est d'utiliser l'échappement d'URL (% 2F étant le code approprié). Cependant, cela perturbe mon proxy d'équilibrage de charge apache ainsi que le serveur d'application sur notre boîte de démonstration (passager en cours d'exécution). Bien que cela fonctionne très bien sur les serveurs de développement locaux. Les URL incluant% 2F semblent causer 404 erreurs du serveur (pas l'application!). Ce que je cherche est une approche générale pour résoudre ce problème, tout en gardant une URL bien rangée.
La pile à l'origine de ce problème est la suivante: Ruby 1.8.7, Merb 1.0.12, équilibrage de charge Apache vers une grappe fine en production, Passenger sur le serveur de démonstration et utilisation de thin-thin non développé.
C'est un peu en retard, mais voir si double codage des travaux de barre oblique. Votre URL ressemble à 'mod_rewrite' - qui nécessite un double encodage dans certains de ses scénarios (incroyablement agaçant). – pinkgothic
Je n'utilise pas mod_rewrite, apache utilise simplement mod_proxy pour envoyer l'URL à l'application. – Glenjamin