Submitted by Shamanix on
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 !
Il est préférable
Permalien Soumis par alkahan le 27 Juillet, 2007 - 20:38
Il est préférable d'utiliser les Réécritures d'URL :
voir :
http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html
http://httpd.apache.org/docs/2.2/misc/rewriteguide.html
Ne pas oublier d'utiliser le flag [G] pour que tes anciennes URL soient marquées comme obsolètes.
Bon courage.
Hmm d'après ce que j'ai
Permalien Soumis par Shamanix le 27 Juillet, 2007 - 21:28
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 :)
exact ! un [R=301] sera
Permalien Soumis par alkahan le 27 Juillet, 2007 - 22:05
exact ! un [R=301] sera beaucoup mieux :-)
Merci, c'est déjà mieux
Permalien Soumis par Shamanix le 28 Juillet, 2007 - 00:36
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
Permalien Soumis par alkahan le 28 Juillet, 2007 - 08:20
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
Permalien Soumis par Shamanix le 28 Juillet, 2007 - 12:07
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.