cotdaz Posté 1 Juin 2004 Posté 1 Juin 2004 (modifié) Bonjour, j'utilise un phpbb pour mon forum, et j'ai appliqué un mod pour l'url rewriting, pour avoir des url plus simples, grace à ce mod je me retrouve à présent avec des url du type: http://www.justneuf.com/ftopic100.html pour affiner le tout j'ai souhaité que mes url soient sous la forme http://www.justneuf.com/ftopic_100.html Là, ou ç'est moins évident c'est que GG m'a référencé mes pages en ftopic100.html et lorsque je clique dessus bien évidemment je tombe sur une 404, donc j'ai ajouté une ligne dans mon .htaccess: ErrorDocument 404 http://www.justneuf.com de manière à éviter les 404 et rediriger vers la page d'acceuil. Mais ce que je souhaiterais, c'est rediriger mes ftopic100 vers ftopic_100 et là ..... souci j'ai essayé d'ajouter : RewriteRule ^ftopic([0-9]*)\.* /http://www.justneuf.com/ftopic_$1\.* /[R=301,L] mais ça me donne une erreur 500 Pour vous permettre de m' aider voilà mon htaccess complet avec juste la redir pour les 404 ErrorDocument 404 http://www.justneuf.comDirectoryIndex portal.php RewriteEngine On RewriteRule ^forums.* /index.php RewriteRule ^forum_([0-9]*).* /viewforum.php?f=$1&mark=topic RewriteRule ^viewforum_([0-9]*)-([0-9]*)-([0-9]*).* /viewforum.php?f=$1&topicdays=$2&start=$3 RewriteRule ^forum_([0-9]*).* /viewforum.php?f=$1 RewriteRule ^ptopic_([0-9]*).* /viewtopic.php?t=$1&view=previous RewriteRule ^ntopic_([0-9]*).* /viewtopic.php?t=$1&view=next RewriteRule ^ftopic_([0-9]*)-([0-9]*)-([a-zA-Z]*)-([0-9]*).* /viewtopic.php?t=$1&postdays=$2&postorder=$3&start=$4 RewriteRule ^ftopic_([0-9]*)-([0-9]*).* /viewtopic.php?t=$1&start=$2 RewriteRule ^ftopic_([0-9]*).* /viewtopic.php?t=$1 RewriteRule ^ftopic_([0-9]*).html /viewtopic.php?t=$1&start=$2&postdays=$3&postorder=$4&highlight=$5 RewriteRule ^sutra_([0-9]*).* /viewtopic.php?p=$1RewriteRule ^newtopic_([0-9]*).* /viewtopic.php?t=$1&view=newest Merci Modifié 1 Juin 2004 par cotdaz
Dan Posté 1 Juin 2004 Posté 1 Juin 2004 RewriteRule ^ftopic([0-9]*)\.* /http://www.justneuf.com/ftopic_$1\.* /[R=301,L] Il vient d'où, le / devant http:// ? Supprimes-le, ca ira mieux Pas besoin du \ devant le . dans le second membre non plus. Et rajoute aussi un .html à la fin RewriteRule ^ftopic([0-9]*)\.html http://www.justneuf.com/ftopic_$1.html [R=301,L] Dan PS: pour info, si tu veux que ta redirection d'erreur retourne la bonne entête, il ne faut pas utiliser d'url complètement qualifiée mais mettre: ErrorDocument 404 /
cotdaz Posté 1 Juin 2004 Auteur Posté 1 Juin 2004 merci Dan, Voilà donc la ligne qui fonctionne pour Ovh en mut : RewriteRule ^ftopic([0-9]*)\.html http://www.justneuf.com/ftopic_$1.html [R=301,L] Par contre je ne comprends pourquoi sur le début de mon htaccess il me faut un "/" et pas sur la partie pour passer de ftopic8 à ftopic_8 ?? Si tu pouvais m'expliquer, car avoir la solution c'est bien mais la comprendre est encore mieux pour la suite J'ai également suivi ton conseil pour le 404 ... voici donc mon htaccess qui fonctionne: ErrorDocument 404 /DirectoryIndex portal.php RewriteEngine On RewriteRule ^forums.* /index.php RewriteRule ^forum_([0-9]*).* /viewforum.php?f=$1&mark=topic RewriteRule ^viewforum_([0-9]*)-([0-9]*)-([0-9]*).* /viewforum.php?f=$1&topicdays=$2&start=$3 RewriteRule ^forum_([0-9]*).* /viewforum.php?f=$1 RewriteRule ^ptopic_([0-9]*).* /viewtopic.php?t=$1&view=previous RewriteRule ^ntopic_([0-9]*).* /viewtopic.php?t=$1&view=next RewriteRule ^ftopic_([0-9]*)-([0-9]*)-([a-zA-Z]*)-([0-9]*).* /viewtopic.php?t=$1&postdays=$2&postorder=$3&start=$4 RewriteRule ^ftopic_([0-9]*)-([0-9]*).* /viewtopic.php?t=$1&start=$2 RewriteRule ^ftopic_([0-9]*).* /viewtopic.php?t=$1 RewriteRule ^ftopic_([0-9]*).html /viewtopic.php?t=$1&start=$2&postdays=$3&postorder=$4&highlight=$5 RewriteRule ^sutra_([0-9]*).* /viewtopic.php?p=$1RewriteRule ^newtopic_([0-9]*).* /viewtopic.php?t=$1&view=newestRewriteRule ^ftopic([0-9]*)\.html http://www.justneuf.com/ftopic_$1.html [R=301,L]RewriteRule ^sutra([0-9]*)\.html http://www.justneuf.com/sutra_$1.html [R=301,L]RewriteRule ^ntopic([0-9]*)\.html http://www.justneuf.com/ntopic_$1.html [R=301,L]RewriteRule ^ptopic([0-9]*)\.html http://www.justneuf.com/ptopic_$1.html [R=301,L]RewriteRule ^forum([0-9]*)\.html http://www.justneuf.com/forum_$1.html [R=301,L] Constates tu, ou, constatez vous des erreurs, ou améliorations que je pourrais apporter Merci encore.
Dan Posté 1 Juin 2004 Posté 1 Juin 2004 Cotdaz, En fait tous les / devant viewforum.php sont syntactiquement incorrects. C'est "tombé en marche" parce que ce fichier se trouve à la racine et que le DOCUMENT_ROOT est correctement renseigné (ce qui n'est pas le cas sur tous les hébergements). Tu peux donc les supprimer partout et mettre tes règles comme: RewriteRule ^forum_([0-9]*)\.html viewforum.php?f=$1&mark=topic [L] Tu noteras le [L] à la fin pour marquer qu'il n'y a plus de réécriture à faire une fois la règle validée. Ca évite de perdre du temps à essayer de trouver un "match" sur les autres lignes Dan
cotdaz Posté 1 Juin 2004 Auteur Posté 1 Juin 2004 Erreur Dan ? Voilà les modifs que tu m' as conseillé de faire ErrorDocument 404 /DirectoryIndex portal.php RewriteEngine On RewriteRule ^forums.* /index.php RewriteRule ^forum_([0-9]*).* viewforum.php?f=$1&mark=topic [L]RewriteRule ^viewforum_([0-9]*)-([0-9]*)-([0-9]*).* viewforum.php?f=$1&topicdays=$2&start=$3 [L]RewriteRule ^forum_([0-9]*).* viewforum.php?f=$1 [L]RewriteRule ^ptopic_([0-9]*).* viewtopic.php?t=$1&view=previous [L]RewriteRule ^ntopic_([0-9]*).* viewtopic.php?t=$1&view=next [L]RewriteRule ^ftopic_([0-9]*)-([0-9]*)-([a-zA-Z]*)-([0-9]*).* viewtopic.php?t=$1&postdays=$2&postorder=$3&start=$4 [L] RewriteRule ^ftopic_([0-9]*)-([0-9]*).* viewtopic.php?t=$1&start=$2 [L] RewriteRule ^ftopic_([0-9]*).* viewtopic.php?t=$1 [L]RewriteRule ^ftopic_([0-9]*).html viewtopic.php?t=$1&start=$2&postdays=$3&postorder=$4&highlight=$5 [L]RewriteRule ^sutra_([0-9]*).* viewtopic.php?p=$1 [L]RewriteRule ^newtopic_([0-9]*).* viewtopic.php?t=$1&view=newest [L]RewriteRule ^ftopic([0-9]*)\.html http://www.justneuf.com/ftopic_$1.html [R=301,L]RewriteRule ^sutra([0-9]*)\.html http://www.justneuf.com/sutra_$1.html [R=301,L]RewriteRule ^ntopic([0-9]*)\.html http://www.justneuf.com/ntopic_$1.html [R=301,L]RewriteRule ^ptopic([0-9]*)\.html http://www.justneuf.com/ptopic_$1.html [R=301,L]RewriteRule ^forum([0-9]*)\.html http://www.justneuf.com/forum_$1.html [R=301,L] Pour aller de l'acceuil à l'index du forum ok ! Mais par contre lorsqu'on clique sur un forum au hazard on est redirigé vers la page d'acceuil à suivre ...
Dan Posté 1 Juin 2004 Posté 1 Juin 2004 Comme mentionné dans mon post au début, tu as oublié un certain nombre de .html en première partie d'expression De ce fait tu as plusieurs règles qui ne seront pas validées... Tu as aussi des règles où tu utilises les références arrières $2, $3, $4 et même $5 alors que tu n'as qu'une seule expression entre parenthèses dans le premier argument de la règle.... et ca ne marchera pas. Exemple qui ne marche pas: RewriteRule ^ftopic_([0-9]*).html /viewtopic.php?t=$1&start=$2&postdays=$3&postorder=$4&highlight=$5 Je n'ai pas lu toutes tes règles, pensant qu'elles étaient supposées bonnes... mais à seconde lecture elles sont truffées d'erreurs de ce genre Je n'ai pas de forum phpbb sous le coude pour valider les règles, ne connaissant pas les paramètres qui sont utilisés ... Dan
Nicolas Posté 1 Juin 2004 Posté 1 Juin 2004 RewriteRule ^forum_([0-9]*)\.html viewforum.php?f=$1&mark=topic [L] Il manque le $ non ? RewriteRule ^forum_([0-9]*)\.html$ viewforum.php?f=$1&mark=topic [L]
cotdaz Posté 3 Juin 2004 Auteur Posté 3 Juin 2004 En fait tous les / devant viewforum.php sont syntactiquement incorrects.C'est "tombé en marche" parce que ce fichier se trouve à la racine et que le DOCUMENT_ROOT est correctement renseigné (ce qui n'est pas le cas sur tous les hébergements). Tu peux donc les supprimer partout et mettre tes règles comme: RewriteRule ^forum_([0-9]*)\.html viewforum.php?f=$1&mark=topic [L] Alors voilà la suite ..... j'ai essayé de virer les / mais ça ne fonctionnait pas, donc j'ai essayer de faire le test avec l'exemple que tu donnes ici 1. Créez un fichier html simple, nommez le « trouve.html ». 2. Modifiez le fichier .htaccess en y ajoutant les 3 lignes suivantes. Faites très attention à utiliser la syntaxe précise ou mieux, utilisez le copier/coller : Options +FollowSymlinks RewriteEngine on RewriteRule ^nexistepas.html$ trouve.html [L] Ca ne fonctionnait pas mais comme ça : RewriteRule ^nexistepas.html$ /trouve.html [L] pas de souci ça fonctionne donc, suite à tes conseils et à ceux d' Nicolas, voilà le htaccess qui fonctionne: ErrorDocument 404 /DirectoryIndex portal.php Options +FollowSymlinksRewriteEngine on RewriteRule ^forums.* /index.phpRewriteRule ^forum([0-9]*).html$ /viewforum.php?f=$1&mark=topic [L]RewriteRule ^viewforum([0-9]*)-([0-9]*)-([0-9]*).html$ /viewforum.php?f=$1&topicdays=$2&start=$3 [L]RewriteRule ^forum([0-9]*).html$ /viewforum.php?f=$1 [L]RewriteRule ^ptopic([0-9]*).html$ /viewtopic.php?t=$1&view=previous [L]RewriteRule ^ntopic([0-9]*).html$ /viewtopic.php?t=$1&view=next [L]RewriteRule ^ftopic([0-9]*)-([0-9]*)-([a-zA-Z]*)-([0-9]*).html$ /viewtopic.php?t=$1&postdays=$2&postorder=$3&start=$4 [L]RewriteRule ^ftopic([0-9]*)-([0-9]*).html$ /viewtopic.php?t=$1&start=$2 [L]RewriteRule ^ftopic([0-9]*).html$ /viewtopic.php?t=$1 [L]RewriteRule ^ftopic([0-9]*).html$ /viewtopic.php?t=$1&start=$2&postdays=$3&postorder=$4&highlight=$5 [L]RewriteRule ^sutra([0-9]*).html$ /viewtopic.php?p=$1 [L]RewriteRule ^newtopic([0-9]*).html$ /viewtopic.php?t=$1&view=newest [L] et finalement je reste avec des url sous la forme forum8.html D'autres idées afin d'améliorer tout ceci ? Merci.
Nicolas Posté 3 Juin 2004 Posté 3 Juin 2004 RewriteRule ^ftopic([0-9]*).html$ /viewtopic.php?t=$1&start=$2&postdays=$3&postorder=$4&highlight=$5 [L] Il y a un problème sur cette ligne $2 $3 $4 et $5 n'auront pas de valeurs associées
cotdaz Posté 7 Juin 2004 Auteur Posté 7 Juin 2004 Après quelques jours d'absence, voilà le résultat, si j'opte pour une ligne comme vous me le conseillez RewriteRule ^forum_([0-9]*)\.html viewforum.php?f=$1&mark=topic [L] voir une ligne comme ça RewriteRule ^forum_([0-9]*)\.html$ /viewforum.php?f=$1&mark=topic [L] ça ne fonctionne pas une chose est sure c'est que sur ovh il faut bien le" / " pour que ça tourne, puisque j'ai essayé de faire le test que tu conseilles avant de faire quoi que ce soit et avec le" / " pas de souci. Donc j'ai constaté que ceci fonctionnait RewriteRule ^forum_([0-9]*)\.* /viewforum.php?f=$1&mark=topic [L] et aussi RewriteRule ^ftopic_([0-9]*)\.html$ http://www.justneuf.com/ftopic$1.html [R=301,L] les 301 fonctionne très bien même en indiquant le .html$ Pourquoi ?? sans doute un mystère des phpbb .... mais en regardant mes logs je m'aperçois qu' à présent j'ai des 302 sur /posting.php et /search.php voir login/php ?? Merci de vos conseils ce n'est jamais évident de démarrer et heureusement pour moi j'ai découvert le hub pour m'aider
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant