.htaccess ne fonctionne pas (avec phpBB3)

WRInaute discret
Bonjour, j'ai migré mon forum fluxBB vers phpBB3 et je souhaite mettre en place quelques redirections dans mon .htaccess. Voici les URL à rediriger :

/viewtopic.php?pid=45 => /post45.html#p45
/viewtopic.php?id=2 => /topic2.html
/profile.php?id=81 => /membre81.html

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

RedirectPermanent /viewforum.php?id=2 http://forum.finalclap.com/graphisme-et ... he-f2.html
RedirectPermanent /viewforum.php?id=16 http://forum.finalclap.com/compositing-f16.html

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

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

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

Comment faire ?

Merci
 
WRInaute discret
Bah oui, c'est exactement ce que j'ai appliqué :

Code:
RewriteEngine on

RewriteRule ^viewtopic.php?pid=([0-9]+)$ /post$1.html#p$1 [R=301,L]

Mais quand j'accède à http://localhost/viewtopic.php?pid=45 par exemple, j'ai cette erreur :

Not Found

The requested URL /viewtopic.php was not found on this server.

Ça signifie que la réécriture n'a pas fonctionné, sinon j'aurais été redirigé vers la nouvelle URL.
 
WRInaute passionné
c'est pas ce qui est indiqué pour une url avec paramètre ;)
Code:
RewriteEngine on

RewriteCond %{QUERY_STRING} ^pid=([0-9]+)$
RewriteRule ^viewtopic\.php$ /post%1.html?#p%1 [R=301,L]
 
WRInaute discret
J'avoue, j'ai été trop vite.

En fait c'est le point d'interrogation (qui sert de délimiteur pour la QUERY_STRING) qui est "interprété" au lieu d'être simplement lu comme une chaîne.

J'ignorais cela, alors quand j'ai vu les RewriteCond 8O, je ne me suis même pas demandé pourquoi ils utilisaient cette technique et je suis passé à côté.

Merci pour le morceau de code.
 
Discussions similaires
Haut