Maison >développement back-end >C++ >Comment gérer les barres obliques codées en URL dans le routage d'URL ?

Comment gérer les barres obliques codées en URL dans le routage d'URL ?

DDD
DDDoriginal
2025-01-03 16:25:40153parcourir

How to Handle URL-Encoded Slashes in URL Routing?

Travailler avec des barres obliques codées en URL dans les URL

Dans le routage d'URL, il est parfois nécessaire de gérer les paramètres qui contiennent des barres obliques. Cependant, l'encodage d'URL remplace généralement les barres obliques par la séquence « / », ce qui peut interrompre la correspondance de route.

Problème :

Lors de l'utilisation d'une route telle que {controller}/{ action}/{id}, les URL avec des barres obliques codées en URL (par exemple, "Accueil/À propos/100/200") ne correspondent pas à la route.

Solution 1 : Encodage/décodage d'URL personnalisé

Une solution d'encodage/décodage d'URL personnalisée peut être implémentée, telle que celle fournie dans l'extrait de code ci-dessous. Cette approche encode la valeur du paramètre en Base64 et ajoute un préfixe pour indiquer que l'encodage a été utilisé.

Solution 2 : paramètre générique

Si le paramètre problématique est toujours le dernier Premièrement, vous pouvez utiliser un paramètre générique {*id} dans la définition de l'itinéraire. Cela autorise plusieurs segments dans le paramètre, y compris les barres obliques.

Autres considérations :

  • Les caractères d'espacement ( ) doivent également être correctement codés en URL.
  • L'encodage Base64 peut rendre les URL visuellement peu attrayantes.
  • Une approche alternative consiste à stocker un chaîne pré-formatée pour chaque élément et utilisez une colonne "URL" distincte dans la base de données. Cela évite le besoin de décodage et garantit la cohérence des données.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn