Redirection permanente et UR; [R = 301 L] ?

WRInaute discret
Bonjour à tous.

1- Première question :)
Avant de faire de l'url rewriting pas mal de mes liens avaient un aspect baroque :
Code:
http://www.monsite.tld/index.php?i=1&j=2&k=3

Une regle simple d'URL rewriting permet de traduire ca en:
Code:
http://www.monsite.tld/index-1-2-3.html
Pas de soucis, l'article de Dan explique tout.

Petit probleme : google se souvient des vieilles pages avec des paramètres dans l'url et continue de les consulter meme si elles ne sont plus présentes en tant que lien. La preuve ? Elles sont toujours en réponse pour certaines requetes.

Faut il mettre le code [R=301 L] et pas seuleument [L] à la fin de la regle d'URL rewriting pour informer le bot que la page avec l'url alambiquée est désormais remplacée par celle avec l'url propre ?
A quoi sert exactement ce code [R = 301] car si j'ai bien compris une regle d'URL rewriting ne se lit que de gauche à droite. Ce 301 donnerait donc une info de déplacement de la ressource de quelle url vers quelle url ? De la page "html" vers la page "php", c'est bien cela ?

2 - Autre petite question qui n'est pas à strictement parler de l'URL rewriting mais qui à a voir avec les instructions Redirect qu'on peut mettre dans le fichier .htaccess

Toutes les pages de mon site utilisent un header. La balise <title> de la page est donnée par ce header. Et une partie du contenu de ce titre est donné par une variable qui s'appelle "rub". Avant de découvrir webrankinfo je passais ce $rub dans l'url meme pour les pages dont le contenu est statique. On obtenait donc des liens du style :
Code:
http://www.monsite.tld/index.php?rub=Titre%20de%20la%20page

Je n'ai plus besoin de ce rub que je fournis autrement au header (pas d'url rewriting la dessous) mais google continue de sortir ces pages là. Je souhaite lui expliquer via une redirection permanente (301) que toutes les pages dont l'url s'écrivait :
Code:
http://www.monsite.tld/index.php?rub=Titre%20de%20la%20page
doivent desormais pointer vers
Code:
http://www.monsite.tld/index.php

En regardenat ce qu'eplique la page dont l'url est ci dessous j'ai eu quelques idées :lol:
http://www.linux-kheops.com/doc/apache/ ... l#redirect

L'instruction RedirectPermanent semble tout indiquée mais je n'ai pas envie d'écrire les url de toutes les pages du site dans le .htaccess avec tous les rub associés.
J'ai donc regardé RedirectMatch qui est plus flexible, mais elle ne renvoit pas au bot l'info. "301" = redirection permanente. Comment faire : peut on utiliser RedirectMatch avec une " 301" ? Si oui il me suffirait d'ecrire des regles du type :
Code:
"RedirectMatch301" (.*).php?rub=(.*)      http://www.monsite.tld$1.php

L'objectif est bien sur de réduire les doublons dans l'index des moteurs de recherche. Meme si à terme il finira par s'en rendre compte ca me parait plus satisfaisant de lui faciliter la tache.

J'ai cherché sur le forum des posts correspondant au meme type de question et j'en ai trouvé, notamment celui en dessous, mais j'avoue que je n'ai pas trouvé de reponse à ces questions.

https://www.webrankinfo.com/forum/t/redirections-variables-et-url-rewriting.2021/
 
WRInaute discret
Je m'auto répond pour la deuxieme question grace à ce post que je viens de relire en détail :
https://www.webrankinfo.com/forum/t/html-php.3055/

Il suffit apparemment de mettre le chiffre 301 derrière RedirectMatch pour donner un caractère permanent à la chose.
Code:
RedirectMatch 301 url1 url2

Le pb de ce forum c'est qu'il est tellement riche que toutes les reponses s'y trouvent deja :lol:

Euh pour la premiere question j'ai pas encore trouvé.
 
WRInaute discret
Je poursuis mon monologue :lol:

En fait la je pete un plomb avec les expressions regulieres. En plus les modifs dans le fichier .htaccess ne semblent pas etre prises en compte immédiatement (léger délai de quelques secondes) alors ca n'arrange rien.

En termes simples : je veux faire un RedirectMatch 301 d'une page url1-avec-parametres vers url1-sans-parametres.
Code:
url1-avec-parametres  : http://www.site.com/arborescence/diverse/page.php?rub=titre%20de%20la%20page

 url1-sans-parametres. : http://www.site.com/arborescence/diverse/page.php

Pitié aidez moi :lol: je deviens fou :oops:
C'est sans doute tres simple mais comme tout ce qui est simple ca agace vite quand on ne tombe pas dessus tout de suite.
Faut il encoder le "?" de l'url ... ?
 
WRInaute passionné
Salut nico__p

Pour répondre à ta première question, le flag R=301 ne doit être utilisé qu'avec une redirection extérieure, c'est à dire dont le deuxième argument est de la forme http://...

Exemple, pour rediriger la page ancien.html vers nouveau.html de manière permanente, tu utiliseras:

Code:
RewriteRule   ancien\.html   http://domaine.com/nouveau.html [R=301,L]

Dan
 
WRInaute discret
Hmm ok.

C'est pour ca que j'ai mis plusieurs fois mon site en erreur 500 hier alors :lol: Bon enfin c'est comme ca qu'on apprend..

Sinon, pas d'idée pour ma deuxieme question?

Autre chose : confirmez vous qu'une modif dans le fichier .htaccess n'est pas prise en compte immédiatement par le server (temps de latence de quelques secondes à quelques dizaines de secondes) ou bien est ce une hallucinantion ou un simple probleme de cache de navigateur? j'ai eu des droles de truc hier :lol:
 
WRInaute passionné
Ca doit être un problème de cache de navigateur car normalement une modif .htaccess est prise en compte instantanément.

Dan

PS: je planche sur ta 2 ème question :lol:
 
WRInaute occasionnel
hetzeld a dit:
Ca doit être un problème de cache de navigateur car normalement une modif .htaccess est prise en compte instantanément.
Perso, chez OVH je trouve qu'il faut un léger temps d'attente pour voir les effets des modif sur les .htaccess. Certainement le temps de propagation sur les différents serveurs des hébergements mutalisés

Mirgolth
 
WRInaute discret
Ouaip je suis aussi chez OVH donc ca doit etre ca Mirgolth.

Quand on efface le fichier le server s'en rend compte de suite et plus rien ne marche :lol: mais quand on modifie une ligne la prise en compte de cette modif peut prendre jusqu'à une trentaine de secondes si je me fie à ce que j'ai constaté hier. A la fin (quand j'en ai eu marre :lol: ) j'avais meme l'impression qu'aucune modification n'etait prise en compte et qu'il fallait effacer le fichier puis le remettre pour qu'il soit "lu" (pris en compte). Je n'y connais rien en Apache mais si un specialiste peut confirmer que ca se passe comme ca ..?
C'est particulierement agacant lorsqu'on lutte avec ces ##$$¤# d'expressions régulières :twisted:
Si ca se trouve j'avais trouvé une solution mais le server etait pas refresh :?
 
WRInaute discret
nico__p a dit:
C'est sans doute tres simple mais comme tout ce qui est simple ca agace vite quand on ne tombe pas dessus tout de suite.
Faut il encoder le "?" de l'url ... ?

Je viens moi aussi de mettre en place une redirection dans le fichier .htacces mais malheureusement le ? est transcris en %3f
Merci pour votre aide..

GP
 
Nouveau WRInaute
Désolé de déterrer le sujet mais j'ai une question dans ce thème...

J'essaie de rediriger des pages d'un site A vers un site B via mon .htaccess s'en balek royal...

J'ai essayé beaucoup de choses sans succès, notamment

Redirect 301 /pagesiteA http://www.siteB.fr/page

Avez-vous une idée pour qu'il accepte la redirection vers une page extérieure au domaine principal ?
 
Discussions similaires
Haut