Redirection des anciens liens

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Ayant récemment switché mon ancien site vers Drupal, j'aimerais rediriger les anciens liens vers les nouveaux.

J'ai essayé de faire un RedirectPermanent grâce à un .htaccess de la manière suivante :

RedirectPermanent /pagesfixes.php?page=1 http://www.monsite.com/chapitre-0-introduction

Le problème : le paramètre ?page=1 n'est pas pris en compte donc ça foire.

Quand je retire ce paramètre du .htaccess, l'adresse vers laquelle il me redirige donne http://www.monsite.com/chapitre-0-introduction?q=pagesfixes.php. D'où sort ce paramètre q=pagesfixes.php qui fait tout foirer ?

Donc à mon avis je suis complètement à côté de la plaque, quelqu'un aurait-il solution à mon problème initial qui était de rediriger les anciens liens vers les nouveaux svp ? :p

Merci d'avance !

Version de Drupal : 

Hmm d'après ce que j'ai compris avec le flag [G] on tombe sur une page 410 sans redirection ? ce que je souhaiterais c'est que les anciennes redirigent vers les nouvelles URL.

Merci d'avoir pris le temps de répondre :)

Merci, c'est déjà mieux !

Maintenant je sais rediriger une page grâce à RewriteRule ^pagesfixes.php http://www.monsite.com/introduction [QSA,L,R=301] et ça fonctionne.

Par contre je suis encore bloqué au niveau du paramètre. Comment puis-je faire pour rediriger pagesfixes.php?page=2 vers http://www.monsite.com/premiere-page par exemple ?

Car de cette manière je tombe sur http://www.monsite.com/introduction?page=2 et c'est pas ça que je veux.

Attention, il faut bien que tu comprennes comment est définit une url :
dans http://www.monsite.com/introduction?page=2 :
http:// est le protocole
monsite.com est le domaine
introduction est le chemin
et ?page=2 est une chaine d'argument.

Ceci étant dit, page=2 sera donc disponible via la variable QUERY_STRING.
Pour rediriger pagesfixes.php?page=2, il faut que tu crées une condition sur le nom du script ET sur le QUERY_STRING.

Ca marche ! avec ce genre de commande :

RewriteCond %{QUERY_STRING} ^page=2$
RewriteRule ^pagesfixes.php http://www.monsite.com/premiere-page [QSA,L,R=301]

Il reste un petit détail pas très important : il continue à m'afficher le QUERY_STRING initial après le redirect, par exemple :

http://www.monsite.com/premiere-page?page=2

Bon c'est pas très grave car ça n'empêche pas la page de s'afficher mais si y a un moyen simple pour le retirer je suis preneur.