Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2953 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Encoded URLs : %20 fonctionne mais pas les autres ..

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Encoded URLs : %20 fonctionne mais pas les autres ..

n°1715792
ZeBix
edit > preview
Posté le 10-04-2008 à 17:01:26  profilanswer
 

Je deviens un peu fou car je n'arrive pas à situer le problème.
 
J'ai un serveur web Apache sous Windows (eh oui) et une tétrachiée de documents qui ont été importés par script, et qui doivent être accessibles via un URL.
 
Par exemple :  
http://monsite/documents/ledocument.txt
 
Les noms de fichier comportant parfois des espaces et/ou caractères spéciaux, j'ai pris le soin d'encoder mes URLs
 
Ainsi pour un nom de fichier : "Salut les gars.txt" , le lien pour y accéder est bien :  
http://monsite/documents/Salut%20les%20gars.txt et ça fonctionne nickel
 
En revance, dès qu'il y a un caractère spécial autre que l'espace, ça ne va plus :  
le fichier "identité.txt" s'accède théoriquement par l'URL :  
http://monsite/documents/identit%E9.txt  
 
et ça me donne un 404 ... le document se trouve bien sûr au bon endroit, et sous IE je peux y accéder par http://monsite/documents/identité.txt , mais des accents dans un URL ça fait sale et surtout ce n'est pas compatible partout ... notamment pour le background downloader d'Adobe qui perd les pédales sur les gros PDF accédés de la sorte.
 
Je voudrais donc pouvoir y accéder via une "url encoded" mais pas moy' ... Je suppose que je dois foirer quelque chose au niveau de la config de mon serveur mais je vois vraiment pas où  :(  
 
Une petite piste ?


Message édité par ZeBix le 10-04-2008 à 17:03:35
mood
Publicité
Posté le 10-04-2008 à 17:01:26  profilanswer
 

n°1715828
babasss
Posté le 10-04-2008 à 17:59:09  profilanswer
 

Un moyen serais de passer par un script qui désencoderai l'url et t'offrirais le fichier à télécharger...


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
n°1716270
ZeBix
edit > preview
Posté le 11-04-2008 à 14:08:16  profilanswer
 

En fait c'est ce que je fais déjà, et c'est ce script qui foire :) j'ai essayé en lien direct dans le navigateur et la même erreur se produit ...  
 
C'est vraiment étrange ..

n°1716293
babasss
Posté le 11-04-2008 à 14:18:36  profilanswer
 

Normalement tu passes dans l'url =>  
 
<a href='download.php?doc=<?php echo urlencode(identité.txt); ?>'>identité.txt</a>
 
=> Ca te renvoie ca comme url : http://monsite/download.php?doc=identit%E9.txt
 
Derrière, tu fais un coup de decode => urldecode($_GET['doc']) et ca devrait être bon pour récupérer le fichier....


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
n°1716464
ZeBix
edit &gt; preview
Posté le 11-04-2008 à 17:22:24  profilanswer
 

OK, trouvé un indice sur ce forum : http://www.webrankinfo.com/forums/viewtopic_22397.htm
 
Mon problème est (encore une fois) un souci de charset.
 
La fonction rawurlencode() que j'utilise, transforme mes "é" en "%E9" , alors qu'elle devrait les transformer en "%c3%a9". Je peux utiliser la solution préconisée sur le post linké ci-dessus (avec un utf8_encode du urlencode) mais avant de devoir tout modifier je voulais savoir s'il y avait moyen de définir quelque part sur mon serveur web que un "é" eh bien c'est "%E9" .. ça m'aiderait beaucoup
 
(on n'a pas besoin du support total de l'utf8, c'est une application client interne et il n'y a que de l'anglais du français et du néerlandais --> le 8859-1 devrait être assez ... )
 

n°1717290
ZeBix
edit &gt; preview
Posté le 14-04-2008 à 15:34:35  profilanswer
 

Je me permets un petit up car toujours pas trouvé de solution satisfaisante ...

n°1728940
ZeBix
edit &gt; preview
Posté le 06-05-2008 à 11:38:27  profilanswer
 

Près d'un mois plus tard, encore un petit up car toujours pas de solution :/
 
Pour rappel :  
 
J'accède au document "identité.txt" sur mon serveur sans problèmes via l'URL http://monsite/documents/identit%c3%c9.txt  
 
Et je voudrais y accéder via  
http://monsite/documents/identit%E9.txt  
 
C'est à dire l'encodage donné grâce à la fonction rawurlencode()
(et je ne peux pas utiliser une autre conversion que celle-ci).
 
Quelqu'un a une idée ?
 

n°1728951
babasss
Posté le 06-05-2008 à 11:51:47  profilanswer
 

La fonction rawurlencode encode en RFC 1738 et toi tu voudrais encoder en iso8859-1 avec la même fonction => c'est tout simplement pas possible (ou alors je comprends plus rien)


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
n°1729038
ZeBix
edit &gt; preview
Posté le 06-05-2008 à 14:27:32  profilanswer
 

en fait la fonction rawurlencode encode correctement et comme je veux.

 

Si je fais un rawurlencode("entité" ) , cela donne "entit%E9".

 

Mais si via un browser qui pointe sur un fichier de ce nom sur mon serveur, j'essaye d'atteindre celui-ci avec "entit%E9", çe me donne une 404.

 

Je remarque que je peux y accéder par "entit%c3%a9" , mais cela ne me va pas. Je voudrais spécifiquement y accéder par "entit%E9".

 

Le fichier s'appelant en réalité "identité", je suppose que la manière d'interpréter une série de caractères précédés d'un % , pour convertir ceux ci en caractères qui permettent de localiser le fichier, doit être un paramètre du serveur, mais je ne trouve absolument pas où (httpd.conf ou autre).


Message édité par ZeBix le 06-05-2008 à 14:42:41
n°1729382
ZeBix
edit &gt; preview
Posté le 07-05-2008 à 11:08:07  profilanswer
 

J'ai trouvé ceci sur le site suivant : http://tomcat.apache.org/tomcat-5. [...] /http.html
 

Citation :

HTTP Connector -> Attributes -> Common Attributes -> URIEncoding :
This specifies the character encoding used to decode the URI bytes, after %xx decoding the URL. If not specified, ISO-8859-1 will be used.  


 
C'est exactement ça, à part que chez moi visiblement ça a été configuré en UTF-8 (ce n'est pas moi qui ai installé le serveur et la personne qui l'a fait me prétend ne jamais avoir sélectionne une telle option).  
 
Mais impossible de trouver l'endroit où est stockée cette information .. je comprends pas trop :'(

mood
Publicité
Posté le 07-05-2008 à 11:08:07  profilanswer
 

n°1729398
babasss
Posté le 07-05-2008 à 11:24:29  profilanswer
 

Normal, tu ne dois pas avoir un serveur tomcat en place (tomcat c'est pour le java)


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
n°1729408
babasss
Posté le 07-05-2008 à 11:28:04  profilanswer
 

Regarde par là, j'ai pas l'impression que la solution a été trouvé mais ca peut être utile.... => http://www.developpez.net/forums/s [...] p?t=474830


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
n°1729519
ZeBix
edit &gt; preview
Posté le 07-05-2008 à 14:12:38  profilanswer
 

Il se trouve que sur mon serveur de test j'ai Tomcat (utilisé par AlFresco qui est notre outil de développement). Sur le serveur de prod je ne l'ai pas mais quoi qu'il en soit le problème est le même sur les deux serveurs
 
Merci pour le link c'est exactement la description de mon problème. Ah oui tiens mon erreur est également une 403, comme pour l'auteur du topic linké, et pas une 404 comme je le dis ci-dessus..
 
La conclusion est un peu décevante, puisque apparemment il n'y a pas de solution réelle à part renommer les fichiers, ce qui m'est pour ainsi dire impossible ...  
 
Et zut !  :(


Message édité par ZeBix le 07-05-2008 à 14:12:59

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Encoded URLs : %20 fonctionne mais pas les autres ..

 

Sujets relatifs
lien hypertext vers un fichier sur un serveur qui ne fonctionne pas[PHP] Après update serveur. Script de log ne fonctionne plus
Savoir si un #include a fonctionnéonLoad ne fonctionne que dans l'éditeur flash!?
[résolu] Erreur pour validation W3C à cause d'URLs avec paramètresma fonction ne fonctionne pas
Masquage de div qui ne fonctionne pas sur IE 6[Resolu] Update ADODB ne fonctionne pas
Regex qui ne fonctionne pas[CSS ] mon background-attachment fonctionne uniquement sur IE
Plus de sujets relatifs à : Encoded URLs : %20 fonctionne mais pas les autres ..


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR