Résolu:
Cet URI fonctionne: p>
/controller/action /controller/action/par1/aaa /controller/action/par1/jfhsdajkhfui454fs /controller/action/par1 /controller/action/par1/
3 Réponses :
Essayez [% 2f code>. Je ne pense pas que
urlencode code> va coder
'/' " code> car il est la syntaxe d'URL valide. P>
Ci-dessous Strike> ci-dessus. P>
Vous le faites presque bien. La seule légère erreur est que Cependant, ce n'est pas la raison pour laquelle cela ne fonctionne pas. Vous générez déjà le chemin Cela ne fonctionne pas dans la pratique pour vous car Apache essaie de vous protéger (de manière assez inefficace) des problèmes de traversée de répertoire. Si vous incluez une séquence code> code> code> dans un chemin d'URL, Apache passera par défaut dans et affiche votre propre page 404 (ignorer tout paramètre Errordocument). Pour activer cette fonctionnalité (IMO: erroné) éteint, vous pouvez utiliser le allecendendedslashes < / a> directive de configuration. p>
Si vous pouvez réellement récupérer la barre oblique codée quand elle revient à votre script est une autre boîte de vers. En raison de la mauvaise conception de la variable Il est généralement préférable d'éviter d'avoir des barres obliques dans des pièces de chemin, car Apache n'est pas le seul serveur ou langue qui sera confondu par eux. En général, vous devez utiliser des paramètres de requête pour les entrées où vous devez pouvoir accepter une chaîne d'octets ou de caractères, car les pièces de chemin ont des problèmes pratiques dans de nombreux serveurs avec (a) urlencode code> préférera utiliser un plus pour signifier un espace, qui n'est approprié que dans les paramètres de requête et non de la partie de chemin.
rawurlencode code> serait mieux ici. p>
/ contrôleur / action / par1 /% 2f code>, ce qui est correct. P>
path_info code> dans la spécification CGI d'origine, de nombreux environnements ne seront pas en mesure de voir le
% 2f code> comme étant quelque chose de différent d'un
/ code>, un routage potentiellement rupture que vous faites à partir de pièces de chemin. p>
/ code> (B) code> \ code>, (c) le caractère nul et (d) cordes vides. p>
J'ai effectivement réussi à résoudre ceci en utilisant Uri comme ceci: / contrôleur / action? RET =% 2f :)
Réponse très informative, Bobince. Je n'étais pas familiarisé avec l'option de configuration allowecodeDslashes, moi-même.