Version complète: sur le forum Webmaster Hub : Rien ne fonctionne dans mon .htaccess (avec phpBB3)
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > Fichier .htaccess et réécriture d'URLs
Galdon
Bonjour, j'ai migré mon forum fluxBB vers phpBB3 et je souhaite mettre en place quelques redirections dans mon .htaccess. Voici les URL à rediriger :

Redirection des topics, des posts et des pages membres
CODE
/viewtopic.php?pid=45 => /post45.html#p45
/viewtopic.php?id=2 => /topic2.html
/profile.php?id=81 => /membre81.html


J'ai essayé avec RedirectMatch et une règle de réécriture, mais aucune des deux solutions ne fonctionne :

CODE
RedirectMatch 301 ^viewtopic.php?pid=([0-9]+)$ /post$1.html

RewriteEngine on
RewriteRule ^viewtopic.php?pid=([0-9]+)$ /post$1.html [R=301]


J'ai aussi quelques URL à rediriger sans REGEX, mais ce code ne fonctionne pas :

Redirection des forums (sans REGEX à cause de l'injection des noms dans l'URL)
CODE
RedirectPermanent /viewforum.php?id=2 http://forum.finalclap.com/graphisme-et-retouche-f2.html
RedirectPermanent /viewforum.php?id=16 http://forum.finalclap.com/compositing-f16.html


Comment faire ?

Merci
crocxx
Bonjour,
Cela peu dépendre de ton hébergeur et de sa configuration.

Peu être qu'il te faut précisé la directive: RewriteBase
Galdon
Non ça ne dépend pas de l'hébergeur (OVH 90plan) puisque sur mon site j'utilise également l'URL rewriting, voici un extrait de ce que contient le .htaccess :

CODE
RedirectPermanent /cours/photoshop.html http://www.finalclap.com/tuto/14,cours-photoshop.html
RedirectPermanent /cours/photoshop-1.html http://www.finalclap.com/tuto/15,premiers-pas.html

RewriteRule ^liste-tutoriaux.html$ /index.php?page=liste-tutoriaux.php [L]
RewriteRule ^liste-tutoriaux/([0-9]+),([0-9a-zA-Z_-]+).html$ /index.php?page=liste-tutoriaux.php&cat=$1&nom_cat=$2 [L]

RewriteRule ^tuto/([0-9]+),([0-9a-zA-Z_-]+).html$ /index.php?page=tuto.php&id_tuto=$1&nom_tuto=$2 [L]


Et ça fonctionne impeccablement, mais les mêmes commandes ne fonctionnent pas sur le sous domaine du forum. Visiblement ça n'a pas l'air d'être une erreur de syntaxe, vraiment je ne vois pas le problème.
Dan
Tu n'as pas par hasard une règle conditionnelle qui redirige le domaine sans www vers le domaine avec le www ?
Si elle est mal écrite, cela pourrait causer ce "non fonctionnement"
Galdon
Non, je n'ai pas cette règle, car mon forum est hébergé sur le sous-domaine forum.finalclap.com.

En faisant des tests, je me suis aperçu que ce qui faisait tout planter est le point d'interrogation. Normalement quand on fait une RewriteRule, l'URL qui va être réécrite est propre, elle ne contient donc pas de "?".

Mais là c'est un cas particulier ou l'URL source contient des paramètres GET.

J'ai trouvé un topic qui en parlait, il faut écrire des choses de ce style :

CODE
RewriteCond %{QUERY_STRING} ^tag/digg$
RewriteRule ^$ http://www.jofischer.fr/tag/digg? [L,R=301]


Je ne maitrise pas trop les RewriteCond, m'enfin au moins j'ai la solution.
Dan
La règle serait de ce style
CODE
RewriteCond %{QUERY_STRING} ^id=([0-9]+)
RewriteRule viewtopic.php  /topic%1.html


Désolé, je n'avais pas lu le code de ton premier post avec attention....
Mais j'ai quelques doutes quant-au bon sens de ces règles ... parce que le fichier membre81.html n'existe manifestement pas sur ton site, non ?

Que veux-tu faire très précisément ? Tu devras modifier les sources de phpbb3 pour que ces "jolies" URLs telles que membre81.html soient créées... et la règle serait alors dans l'autre sens. Là ça ne mène à rien à mon avis.
Galdon
Merci pour le morceau de code, ça fonctionne.

Pour le reste, c'est vrai que ça peut paraître confus.

Avant le 6 septembre, mon forum était un fluxBB, il y avait plein de duplicates (un topic était accessible par des url du type /viewtopic.php?id=5, mais aussi par les URL de tous les posts appartenant à ce topic : /viewtopic.php?pid=213 ou encore ?pid=214...). En plus des duplicates, il n'y avait pas de vrai mod d'URL rewriting comme on peut en trouver sur phpBB par exemple.

J'ai donc pris mon courage à deux mains et migré tout le forum vers phpBB3. Du coup, j'ai pu bénéficier des mods de phpBB SEO : mod rewrite + zero duplicate...

Maintenant, Google contient encore les URL de l'ancien forum dans son index, je veux donc mettre en place des redirections vers les toutes nouvelles URL toutes propres de phpBB (topics, posts et pages membres).

Et le membre n°81 existe bien : http://forum.finalclap.com/membre81.html (j'avais précisé plus haut que le forum était installé sur un sous-domaine).
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.