angel-dust-web Posté 21 Août 2009 Partager Posté 21 Août 2009 Bonjour, je rencontre un problème avec là régle suivante chez OVH mutualisé : RewriteRule tgpp/([0-9])+/([0-9])+/index.html /tgpp.php?id=$1&type=$2 [NC,L] elle fonctionne très bien en local (Mac OS + MAMP et WinXP + EasyPhp) mais sur ovh, les paramètres ne sont pas remplacés (cad que c'est bien la page tgpp.php qui est affichée mais sans id et sans type). J'ai essayé pas mal de trucs. Si je remplace les '/' par autre chose (genre '_') ça fonctionne très bien. En fait, c'est juste le premier '/' qui pose problème car la régle suivante fonctionne : RewriteRule tgpp([0-9])+/([0-9])+/index.html /tgpp.php?id=$1&type=$2 [NC,L] Quand je contacte le support technique d'ovh, ils me renvoient sur leur aide sur les réécritures d'url, ce qui ne sert à rien vu la vacuité de celle-ci. Ma question : c'est moi qui fait une erreur grosse comme une maison que je ne vois pas ? Quelqu'un a déjà rencontré le probléme ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Jeanluc Posté 21 Août 2009 Partager Posté 21 Août 2009 Bonjour et bienvenue sur Webmaster-Hub, Ce ne serait pas plutôit ceci : RewriteRule tgpp\/([0-9]+)\/([0-9]+)\/index.html /tgpp.php?id=$1&type=$2 [NC,L] J'ai remplacé tes / par des \/ et tes ([0-9])+ par des ([0-9]+). Jean-Luc Lien vers le commentaire Partager sur d’autres sites More sharing options...
angel-dust-web Posté 21 Août 2009 Auteur Partager Posté 21 Août 2009 (modifié) Merci Jean-Luc, j'ai essayé, ça ne change rien. Les '/' n'ont, à priori, pas besoin d'être escapés. Quant aux ([0-9]+) - (mal écrits dans mon premier post comme tu l'as remarqué ), j'ai essayé plusieurs choses, y compris (\d*), (.*) et ça ne change rien. Il est intéressant de constater que si j'écris RewriteRule tgpp(.*)/etc..... tout fonctionne. Ce sont les '/' avant le premier groupe de regexp qui causent le problème. Ce qui me surprend, c'est d'être le premier chez ovh qui fasse une telle redirection... elle ne me paraît pas si originale que ça... Modifié 21 Août 2009 par angel-dust-web Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dan Posté 21 Août 2009 Partager Posté 21 Août 2009 Quel est le nom du fichier que tu veux récrire ? Donne-nous un exemple de tgpp/([0-9])+/([0-9])+/index.html Lien vers le commentaire Partager sur d’autres sites More sharing options...
angel-dust-web Posté 21 Août 2009 Auteur Partager Posté 21 Août 2009 Dan, je veux réécrire monsiteweb.com/tgpp/0715/1/index.html en monsiteweb.com/tgpp.php?id=0715&type=1 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Jeanluc Posté 22 Août 2009 Partager Posté 22 Août 2009 RewriteRule tgpp.([0-9]+)/([0-9]+)/index.html /tgpp.php?id=$1&type=$2 [NC,L] Est-ce que ceci fonctionne ? Jean-Luc Lien vers le commentaire Partager sur d’autres sites More sharing options...
angel-dust-web Posté 22 Août 2009 Auteur Partager Posté 22 Août 2009 toujours pas avec le '/'. Si je met une adresse tgpp_1234/1/index.html ça fonctionne, mais pas tgpp/1234/1/index.html..... (je précise que je n'ai aucun répertoire tgpp qui mettrait le grouille) je suis pas fou ? y'a un bug ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Jeanluc Posté 22 Août 2009 Partager Posté 22 Août 2009 Qu'y a-t-il d'autre dans ton .htaccess ? Peut-être que tu as une autre règle qui intercepte les adresses /tgpp/1234/1/index.html ? Jean-Luc Lien vers le commentaire Partager sur d’autres sites More sharing options...
angel-dust-web Posté 22 Août 2009 Auteur Partager Posté 22 Août 2009 A priori, non Options -IndexesOptions +FollowSymlinksSetEnv SESSION_USE_TRANS_SID 0 RewriteEngine onRewriteRule (.*)(\?PHPSESSID=.*) $1 [R=301,L]RewriteRule ([a-z]+[A-Z]+)-([a-z]+[A-Z]+)-([a-z]+[A-Z]+)\.htm /hide.php?mot1=$1&mot2=$2&mot3=$3 [NC,L]RewriteRule tgpp([0-9]+)/([0-9]+)/index\.html /tgpp.php?gal=$1&type=$2 [NC,L] Lien vers le commentaire Partager sur d’autres sites More sharing options...
Leonick Posté 24 Août 2009 Partager Posté 24 Août 2009 (modifié) c'est normal, tgpp([0-9]+)/([0-9]+)/index\.html /tgpp.php?gal=$1&type=$2 [NC,L] va chercher des caractères numérique accolés à tgpp, vu que tu as mis un + il faudrait donc tgpp/([0-9]+)/tgpp/([0-9]+)/index\.html /tgpp.php?gal=$1&type=$2 [NC,L] dans ta 1° règle, le problème venait de tes + sortis des parensthèses Modifié 24 Août 2009 par Leonick Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dan Posté 24 Août 2009 Partager Posté 24 Août 2009 Pour info, ta règle : RewriteRule (.*)(\?PHPSESSID=.*) $1 [R=301,L] ne passera JAMAIS ! Lorsqu'on veut traitre le %{QUERY_STRING} il faut utiliser une règle conditionnelle, et non une règle classique. Lien vers le commentaire Partager sur d’autres sites More sharing options...
angel-dust-web Posté 24 Août 2009 Auteur Partager Posté 24 Août 2009 merci, mais en fait j'avais bien mes + sortis des parenthèses. En fait, c'est exactement là règle que tu donnes qui ne fonctionne pas. Pour résumer : tgpp([0-9]+)/([0-9]+)/index\.html /tgpp.php?gal=$1&type=$2 [NC,L] fonctionne avec une adresse tgpp1234/1/index.html mais tgpp/([0-9]+)/([0-9]+)/index\.html /tgpp.php?gal=$1&type=$2 [NC,L] ne fonctionne pas avec une adresse tgpp/1234/1/index.html sinon, je suis bien d'accord qu'elle devrait fonctionner. quelqu'un de très aimable ayant un hébergement mutualisé chez ovh pourrait essayer et me faire part de ses conclusions ? ca serait vraiment sympa (vu qu'ovh ne fait rien à part m'envoyer des liens sur leur pauvre page d'aide, qui ne dit rien...) regards Lien vers le commentaire Partager sur d’autres sites More sharing options...
angel-dust-web Posté 24 Août 2009 Auteur Partager Posté 24 Août 2009 Pour info, ta règle : RewriteRule (.*)(\?PHPSESSID=.*) $1 [R=301,L] ne passera JAMAIS ! Lorsqu'on veut traitre le %{QUERY_STRING} il faut utiliser une règle conditionnelle, et non une règle classique. Merci Dan, sans doute pour ça que google me liste toujours des milliers de pages avec des ?PHPSESSID... Je vais fixer ça. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Leonick Posté 24 Août 2009 Partager Posté 24 Août 2009 de toutes façons, il faut paramétrer php pour que les PHPSESSID passent par cookie Lien vers le commentaire Partager sur d’autres sites More sharing options...
angel-dust-web Posté 24 Août 2009 Auteur Partager Posté 24 Août 2009 de toutes façons, il faut paramétrer php pour que les PHPSESSID passent par cookie En mutualisé, difficile de paramétrer php... Et là, ils sont en session donc en cookie. Problème : googlebot ne prend pas les cookies, donc il met ça en url Solution : se passer des sessions, ça devrait être possible pour moi Lien vers le commentaire Partager sur d’autres sites More sharing options...
Leonick Posté 24 Août 2009 Partager Posté 24 Août 2009 En mutualisé, difficile de paramétrer php...si, sans problème avec ini_set("session.use_cookies", 1); ini_set("session.use_trans_sid", 0); ini_set('session.use_only_cookies', 1); placé en début de code Lien vers le commentaire Partager sur d’autres sites More sharing options...
Remi Posté 25 Août 2009 Partager Posté 25 Août 2009 Cela devrait marcher effectivement... Remonte dans l'arbre de ton hébergement pour voir s'il n'y a pas d'autres htaccess qui interfèrent (même en multidomaine, tous les htaccess au dessus sont pris en compte). Sinon essaie avec abcd/ au lieu de tgpp/ au début du premier paramètre. Lien vers le commentaire Partager sur d’autres sites More sharing options...
angel-dust-web Posté 25 Août 2009 Auteur Partager Posté 25 Août 2009 si, sans problème avec ini_set("session.use_cookies", 1); ini_set("session.use_trans_sid", 0); ini_set('session.use_only_cookies', 1); placé en début de code Merci Leonick, je vais essayer ça. Question subsidiaire, comment faire pour que disparaissent tous les ?PHPSESSID des pages indexées par googlebot ? (Et comment se fait-il qu'un bot si évolué ne sache même pas reconnaitre qu'il est sur la même page ? ) Cela devrait marcher effectivement... Remonte dans l'arbre de ton hébergement pour voir s'il n'y a pas d'autres htaccess qui interfèrent (même en multidomaine, tous les htaccess au dessus sont pris en compte). Sinon essaie avec abcd/ au lieu de tgpp/ au début du premier paramètre. Remi, c'est mon htaccess racine... :-( Je vais essayer de changer ma redirection comme tu dis, je te dirai Lien vers le commentaire Partager sur d’autres sites More sharing options...
angel-dust-web Posté 27 Août 2009 Auteur Partager Posté 27 Août 2009 je ne comprends plus rien.... effectivement si je remplace 'tgpp' par 'abcd', ca fonctionne très bien. la seule raison que je voie, c'est que j'ai une page qui s'appelle tgpp.php (même si je comprend pas pourquoi le fait d'avoir une page du même nom que ce qu'il devrait considérer comme un répertoire fait qu'il renvoie la page AVANT la ré-écriture). Si je remplace mon 'tgpp' par n'importe quel nom de page, genre 'index', il m'affiche la page du même nom ('index.php'). => J'ai donc ma solution. renommer ma page tgpp.php en autrechose.php et tout ira bien.... merci à tous pour votre aide Lien vers le commentaire Partager sur d’autres sites More sharing options...
Leonick Posté 27 Août 2009 Partager Posté 27 Août 2009 je ne comprends plus rien....effectivement si je remplace 'tgpp' par 'abcd', ca fonctionne très bien. la seule raison que je voie, c'est que j'ai une page qui s'appelle tgpp.php (même si je comprend pas pourquoi le fait d'avoir une page du même nom que ce qu'il devrait considérer comme un répertoire fait qu'il renvoie la page AVANT la ré-écriture dans la négociation de contenu, apache vérifie si un fichier n'existe pas du même nom avant d'appliquer les règles de réécriture. Et ça vaut autant pour une uri simple ou une uri avec le nom du fichier comme répertoire virtuel Lien vers le commentaire Partager sur d’autres sites More sharing options...
Remi Posté 31 Août 2009 Partager Posté 31 Août 2009 même si je comprend pas pourquoi le fait d'avoir une page du même nom que ce qu'il devrait considérer comme un répertoire fait qu'il renvoie la page AVANT la ré-écriture Pour éviter ce genre de conflit, tu peux ajouter dans le htaccess : Options -MultiViews Lien vers le commentaire Partager sur d’autres sites More sharing options...
Leonick Posté 31 Août 2009 Partager Posté 31 Août 2009 le problème c'est que dans ce cas là, tu seras obligé de spécifier l'extension du fichier, plus de /page mais /page.php par exemple, non ? 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