xpatval Posté 22 Février 2005 Partager Posté 22 Février 2005 Bonjour,soir, Je me plante lors d'un rewrite rule, sur un fichier pouvant différent de nom selon la navigation. En effet, je code ainsi: RewriteRule ^glossaire_rech.html$ /glossaire_rech.php [L]RewriteRule ^glossaire_rech-([a-z]+)\.html$ /glossaire_rech.php?let=$1&cpt=3 [L]RewriteRule ^glossaire_rech-([a-z]+)\.html$ /glossaire_rech.php?terme=$1 [L] Mais plus aucun fichier ne prend l'extension html. La première ligne existait, et le mod-rewrite fonctionnait. Depuis que j'en ai rajouté deux, ça ne fonctionne plus. Bah pourquoi ? Avez-vous une idée ? xpatval Lien vers le commentaire Partager sur d’autres sites More sharing options...
Anonymus Posté 22 Février 2005 Partager Posté 22 Février 2005 Le [L] signifie qu'il faut executer la regle, et s'arreter si la regle s'applique. Il se pourrait que ce soit le cas, qu'il applique la regle, puis qu'il ne cherche pas à appliquer les autres. Tu devrais inverser les 3 regles, mettre la première en dernier. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Compte supprimé Posté 22 Février 2005 Partager Posté 22 Février 2005 Tes rewrite-cond n°2 et 3 sont identiques. A mon avis y'a un problème... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Compte supprimé Posté 22 Février 2005 Partager Posté 22 Février 2005 Le [L] signifie qu'il faut executer la regle, et s'arreter si la regle s'applique. Il se pourrait que ce soit le cas, qu'il applique la regle, puis qu'il ne cherche pas à appliquer les autres.Tu devrais inverser les 3 regles, mettre la première en dernier. <{POST_SNAPBACK}> Je ne pense pas que ce soit le problème, vu que sa rewrit-cond n°1 est bien distincte des 2 autres, et ne peut pas les englober... Remarque : dans les conds, il faut échapper le .html -> \.html (car tu recherche bien .html et pas [n'importe quel caractere]html ) Cordialement, Lien vers le commentaire Partager sur d’autres sites More sharing options...
xpatval Posté 22 Février 2005 Auteur Partager Posté 22 Février 2005 Ca y est, je suis complètement paumé !! même en enlevant les deux lignes supplémentaires, la première ne fonctionne plus... Le mod_rewrite s'applique même s'il y a passage de paramètres via méthod=post ? Je vais me coucher A demain. Lien vers le commentaire Partager sur d’autres sites More sharing options...
xpatval Posté 25 Février 2005 Auteur Partager Posté 25 Février 2005 (modifié) Bonjour, J'en reviens à mes soucis de rewriting...Cette fois-ci, cette ligne RewriteRule ^glossaire_rech_([a-z]+)\.html$ /glossaire_rech.php?let=$1&cpt=3 [L]fonctionne bien en local, mais absolument pas en ligne (erreur 404) Est-ce normal ? xpatval Modifié 25 Février 2005 par xpatval Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dan Posté 1 Mars 2005 Partager Posté 1 Mars 2005 Essaies avec: RewriteRule glossaire_rech_([a-z]+)\.html glossaire_rech.php?let=$1&cpt=3 [L] C'est vraisemblablement le caractère ^ qui empêche le match, vu que Apache doit envoyer des caractères avant celui-là (par exemple un / ) qui suffisent pour que la règle ne soit pas vérifiée. Dan Lien vers le commentaire Partager sur d’autres sites More sharing options...
xpatval Posté 1 Mars 2005 Auteur Partager Posté 1 Mars 2005 En fait, à force de triturer mon seul neurone, j'en arrive à cette hypothèse qu'est la différence de version d'Apache. En effet, en local, comme je le disais précédemment, ce code fonctionne: RewriteRule ^glossaire_rech_lettre_([a-z]+)\.html$ /glossaire_rech.php?let=$1&cpt=3 [L] (j'ai rajouté le terme "lettre"). Mais ne fonctionnait pas en ligne. Bien entendu, comme nous sommes seuls fautifs de ce que l'on code, je me suis aperçu (tard) que le param de la variable $1 est en majuscule. Je modifie ma ligne en conséquence: RewriteRule ^glossaire_rech_lettre_([A-Z]+)\.html$ /glossaire_rech.php?let=$1&cpt=3 [L] Content suis-je, car cela résoud mon problème, en ligne. Mais plus en local, car cela ne fonctionne plus... Donc, j'en déduis que le flag [NC] va m'enlever cette épine: c'est chose faite. Alors, soucis dû à la différence de version, ou pas ? De plus, deux autres règles me font cogiter sans succès: RewriteRule ^glossaire_rech_terme_([A-Z]+)\.html$ /glossaire_rech.php?terme=$1 [NC,L] où le $1 = Référence. Y-a-t-il une règle spécifique pour les caractères accentués ? Et celle-ci, où certains paramètres peuvent avoir un underscore ($1 = café_chocolat) ^contact_([a-z]+)\.html$ /contact.php?ask=$1 [L] Que dois-je rajouter après ([a-z]+) ? merci, xpatval Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dan Posté 1 Mars 2005 Partager Posté 1 Mars 2005 As-tu lu mon post précédent ? On ne dirait pas ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
xpatval Posté 1 Mars 2005 Auteur Partager Posté 1 Mars 2005 (modifié) As-tu lu mon post précédent ? On ne dirait pas ! Fort heureusement, oui, car à quoi me servirait-il de poster des questions, si je n'applique pas les réponses que l'on peut me suggérer... Mais celle que tu me donnais n'a pas eu de succès. J'ai donc remis les ^ et $ et ajouté le flag [NC]. xpatval Modifié 1 Mars 2005 par xpatval Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dan Posté 1 Mars 2005 Partager Posté 1 Mars 2005 Et le / devant la deuxième partie... tu l'avais enlevé ? Parce que sur un hébergement mutualisé tu n'as pas accès à la racine du serveur Lien vers le commentaire Partager sur d’autres sites More sharing options...
xpatval Posté 1 Mars 2005 Auteur Partager Posté 1 Mars 2005 Et le / devant la deuxième partie... tu l'avais enlevé ? Oui, absolument, mais c'est une 404 qui se produit. xpatval Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dan Posté 1 Mars 2005 Partager Posté 1 Mars 2005 Quel est ton hébergeur ? Pas free tout de même ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
xpatval Posté 1 Mars 2005 Auteur Partager Posté 1 Mars 2005 OVH, en mutua. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dan Posté 1 Mars 2005 Partager Posté 1 Mars 2005 Ah... je crois que dans ce cas il faut le / du deuxième membre Lien vers le commentaire Partager sur d’autres sites More sharing options...
xpatval Posté 1 Mars 2005 Auteur Partager Posté 1 Mars 2005 Mon cher Dan, pour une fois que tes connaissances sont mises en défaut (ce qui est rare, je l'avoue, et te le concède [cirage de pompes]), là encore c'est une 404 qui apparaît. Mais en ce qui concerne cette règle précise, je disais plus haut que j'avais résolu ce problème grâce au flag [NC]... Ce sont les deux autres qui m'ennuient toujours..hum... xpatval Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dan Posté 1 Mars 2005 Partager Posté 1 Mars 2005 OK, j'avais mal lu l'intégralité... Dans ce cas il faut remplacer tes règles par: RewriteRule ^glossaire_rech_terme_(.+)\.html$ /glossaire_rech.php?terme=$1 [L] et RewriteRule ^contact_(.+)\.html$ /contact.php?ask=$1 [L] pour être plus générique et permettre les caractères accentués et l'underscore. Lien vers le commentaire Partager sur d’autres sites More sharing options...
xpatval Posté 1 Mars 2005 Auteur Partager Posté 1 Mars 2005 (modifié) Ah, là je te retrouve Mais, car il y en a forcément un, me reste deux questions: Référencement ($1 de la règle) devient rã©fã©rencement.^Pour le requête qui suit, c'est le bide. Est-ce du à l'encodage ? (dans mon cas, le charset est iso-88-59-1)? Est-il possible de placer un commentaire dans le .htaccess ? Merci à toi pour les règles, et la patience. xpatval Modifié 1 Mars 2005 par xpatval Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dan Posté 1 Mars 2005 Partager Posté 1 Mars 2005 iso-88-59-1 n'exite pas... c'est iso-8859-1 Mais les caractères accentués dans l'URL sont une très mauvaise pratique. Il faut que tu fasses de l'encodage plutôt que de les transmettre tels quels (urlencode()). Lien vers le commentaire Partager sur d’autres sites More sharing options...
xpatval Posté 1 Mars 2005 Auteur Partager Posté 1 Mars 2005 Oui, c'est ce que j'ai fait, mais l'url a une sale tronche /glossaire_rech_terme_R%E9f%E9rencement.html... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant