jiggle Posté 28 Juin 2006 Posté 28 Juin 2006 bonjour, je veux essayer de simplifier un lien sur une page d'accueil et ma regle de rewriting ne fonctionne pas car le parametre passé à la page HTML n'est pas reconduit par apache. dans la log, il indique split uri et exit le parametre, alors que le ARGS devrait etre transmis. Pouvez-vous m'aider ? d'avance merci le fichier htaccess Options +FollowSymlinksRewriteEngine onRewriteRule ^Livre-([0-9]+)-.*\.html$ /CAT/CAT99_FRACAT2_F.html?DX/edlattes/servlet/_FindArticleServlet?TXT_CODE=$1&TXT_LANGUE=francais [L] voici la log apache strip per-dir prefix: /home/applications/lattes/websrv/ACC/Livre-4536538-Le-Visage-de-l-Ange-Dean-koontz.html -> Livre-4536538-Le-Visage-de-l-Ange-Dean-koontz.html applying pattern '^Livre-([0-9]+)-.*\.html$' to uri 'Livre-4536538-Le-Visage-de-l-Ange-Dean-koontz.html' rewrite Livre-4536538-Le-Visage-de-l-Ange-Dean-koontz.html -> /CAT/CAT99_FRACAT2_F.html?DX/edlattes/servlet/_FindArticleServlet?TXT_CODE=4536538&TXT_LANGUE=francais jusque là tout est ok, l'url rewritée est correcte c'est ensuite que çà se corse : split uri=/CAT/CAT99_FRACAT2_F.html?DX/edlattes/servlet/_FindArticleServlet?TXT_CODE=4536538&TXT_LANGUE=francais -> uri=/CAT/CAT99_FRACAT2_F.html, args=DX/edlattes/servlet/_FindArticleServlet?TXT_CODE=4536538&TXT_LANGUE=francais reduce /CAT/CAT99_FRACAT2_F.html -> /CAT/CAT99_FRACAT2_F.html
Dan Posté 28 Juin 2006 Posté 28 Juin 2006 Si tu veux transmettre les paramètres, il faut utiliser le flag [QSA], pour Query String Append Donc [QSA,L] au lieu de [L] en fin de règle !
jiggle Posté 28 Juin 2006 Auteur Posté 28 Juin 2006 QSA sert à passer les parametres d'une URL rewrittée sans ses parametres. je ne suis pas dans ce cas là. dans mon url fixe, j'ai un nombre de plusieurs chiffres qui correspond au parametre. je le traduis bien dans la regle par un parametre. je pense que le souci vient du fait que j'essaie d'appeler une page HTML avec un parametre et que dans ce parametre j'ai un parametre pour la servlet,. conséquence j'ai deux fois le symbole point d'interrogation dans mon URL. alors c'est peut etre à cause de cela que cela ne fonctionne pas ou bien c'est parce que je passe un parametre à une page HTML et non pas à une page PHP ou JSP ou autre ? Options +FollowSymlinksRewriteEngine on RewriteRule ^Livre-([0-9]+)-.*\.html$ /CAT/CAT99_FRACAT2_F.html?DX/edlattes/servlet/_FindArticleServlet?TXT_CODE=$1&TXT_LANGUE=francais [L] en tous cas, merci de t'interesser à mon pb
Dan Posté 28 Juin 2006 Posté 28 Juin 2006 Pourquoi passes-tu DX/edlattes/servlet/_FindArticleServlet dans l'URL ? Ton programme (script) /CAT/CAT99_FRACAT2_F.html ne pourrait pas appeller lui-même cet exécutable ? PS: Au temps pour moi, je reconnais que je n'avais pas lu entièrement ta question...
jiggle Posté 29 Juin 2006 Auteur Posté 29 Juin 2006 Cette formulation vient d'un site déjà assez ancien(an 2000). C'est un site qui comporte des frames malheureusement et la page CAT99_FRACAT2_F.html ne contient en fait qu'un javascript qui réécrit le frameset. la société qui avait monté les pages nous avait fourni cette syntaxe pour pouvoir placer des liens fixes sur la page d'accueil faisant appel à une servlet et en permettant à la page d'être entouré du menu. voici le contenu de la page CAT99_FRACAT2_F.html <script><!-- url=top.window.location.href taille=url.length position=url.indexOf("?DX"); position=position+3 fichier=url.substring(position,taille) toto=new Array() toto [0]='<html>\n' toto [1]='<head>\n' toto [2]='<title>Site Lattès - Catalogue livres et auteurs editions jc lattes</title>\n' toto [3]='<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">\n' toto [4]='</head>\n' toto [5]='<frameset cols="124,*" border="0" framespacing="0" frameborder="NO">\n' toto [6]='<frame src="/CLI01_MENU_F.html" name="menu" scrolling="NO" noresize frameborder="NO" marginheight="0" marginwidth="0">\n' toto [7]='<frameset rows="65,*" border="0" framespacing="0" frameborder="NO">\n' toto [8]='<frame src="/CAT/CAT01_HAUT_F.html" name="haut" scrolling="NO" noresize frameborder="NO" marginheight="0" marginwidth="0">\n' toto [9]='<frame src="'+fichier+'" name="centre" noresize frameborder="NO" marginheight="0" marginwidth="0">\n' toto [10]='</frameset>\n' toto [11]='</frameset>\n' toto [12]='<noframes><body bgcolor="#FFFFFF">\n' toto [13]='désolé, votre navigateur ne supporte pas les frames\n' toto [14]='</body></noframes>\n' toto [15]='</html>\n' document.clear() for (i=0;i<16;i++) { document.write(toto) } document.close() //--> </script> cette formulation peut surement à présent être changée mais je ne suis pas du tout un expert en HTML. le site en question est le sitesite éditions jean claude lattes et ce genre de lien est placé sur la page d'accueil sur les images représentant les livres. Toutes mes excuses pour le codage html pourri de ce site.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant