Htaccess : redirection permanente avec des variables

Consultez la formation sur les stratégies de liens de WebRankInfo / Ranking Metrics


jojohit
WRInaute discret
WRInaute discret
 
Messages: 59
Inscription: 12 Mai 2008

Htaccess : redirection permanente avec des variables

Message le Jeu Sep 10, 2009 14:32

Bonjour,

Suite à la nouvelle version de mon site, mes quelques 1500 URLs ont changé.

Pour ne pas perturber la navigation, j'ai personnalisé la page d'erreur 404. Je voudrais néanmoins créer des redirections.

J'utilise l'URL rewritting et pour cette nouvelle version, j'ai supprimer quelques variables parce que j'avais des URLs un peu trop longues.

Par exemple, l'url http://www.monsite/categorie/rubrique/ [...] /article.html est devenue http://www.monsite/rubrique/article.html

RedirectPermanent fonctionne bien dans mon fichier .htaccess.

Mais je ne peux pas le mettre en place pour les 1500 URLs qui ont changé !

Est-il possible d'utiliser des variables dans
RedirectPermanent comme je les utilise dans RewriteRule ?

Merci pour votre aide. ^^


nickargall
WRInaute accro
WRInaute accro
 
Messages: 6468
Inscription: 13 Juin 2005

Re: Htaccess : redirection permanente avec des variables

Message le Ven Sep 11, 2009 9:02

Bonjour
Bien sur. Soit avec redirectMatch, ou même avec une autre utilisation de rewriteRule (a ajouter à tes règles de réécriture, ca ne les remplace pas)

http://www.urlrewriting.fr/faire-une-redirection-301-des-anciennes-url ... ess_9.html


jojohit
WRInaute discret
WRInaute discret
 
Messages: 59
Inscription: 12 Mai 2008

Re: Htaccess : redirection permanente avec des variables

Message le Ven Sep 11, 2009 9:46

Merci pour cette réponse.

Je constate par exemple dans mon navigateur que les pages :

http://www.monsite.com/article.php?id=25 et http://www.monsite.com/article-25.html donnent le même résultat, suite à l'URL rewriting mise en place dans mon htaccess.

La règle de réécriture fonctionne donc bien :

Options +FollowSymlinks
RewriteEngine on
RewriteRule ^article-([0-9]+).html$ article.php?id=$1

Mais est-ce bon pour le référencement ?

Est-ce du duplicate content même si j'interdis les robots d'indexer les pages contenant "article.php?id" ? Faut-il en plus une redirection permanente ?


nickargall
WRInaute accro
WRInaute accro
 
Messages: 6468
Inscription: 13 Juin 2005

Re: Htaccess : redirection permanente avec des variables

Message le Ven Sep 11, 2009 10:04

Comme tes URL ont été indexées dans leur forme non réécrite, il faut en effet mettre en place des redirections permanentes.


jojohit
WRInaute discret
WRInaute discret
 
Messages: 59
Inscription: 12 Mai 2008

Re: Htaccess : redirection permanente avec des variables

Message le Ven Sep 11, 2009 10:48

Les URLS indexées par Google sont bien celles réécrites, c'est-à-dire cette en html du type http://www.monsite.com/article-25.html .

Mais les pages http://www.monsite.com/article.php?id=25 et http://www.monsite.com/article-25.html sont toutes les 2 actives dans mon navigateur Web.

Si je comprends bien, je dois mettre en place une redirection de la page http://www.monsite.com/article.php?id=25 vers http://www.monsite.com/article-25.html ? Et ceci est-il vrai pour toutes mes règles de réécriture ?

Dois-je en déduire que dès que l'on met en place une règle de réécriture, il faut l'associer à une redirection permanente ?


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3974
Inscription: 16 Nov 2004

Re: Htaccess : redirection permanente avec des variables

Message le Dim Sep 13, 2009 9:50

jojohit a écrit:Dois-je en déduire que dès que l'on met en place une règle de réécriture, il faut l'associer à une redirection permanente ?


c'est mieux voir beaucoup mieux mais pas indispensable car google sait faire la difference entre l'url réécrite et l'originale et gere le duplicate. Le probleme vient plus de la navigation, si le lien réécrit vient d'une messagerie, ou d'une boite de tchat par exemple, il y a de forte chance pour que le serveur en l'abscence de REFERER ne renvoie pas l'url réécrite mais l'originale dans le navigateur, ca m'est souvent arrivé surtout chez OHV en mutu, depuis j'ai fais systématiquement des redirections php des anciennes url vers les nouvelles, ca ne demande pas beaucoup de travail et c'est plus stable pour les utilisateurs


jojohit
WRInaute discret
WRInaute discret
 
Messages: 59
Inscription: 12 Mai 2008

Re: Htaccess : redirection permanente avec des variables

Message le Dim Sep 13, 2009 11:00

Quelle est la meilleure règle de réécriture pour Google, est-cela tout simplement le code ci-dessous ou dois-je ajouter d'autres éléments ?

RewriteRule ^article-([0-9]+).html$ article.php?id=$1 [L]

Autre question, j'ai toutes mes règles de réécriture à la suite sans flag [L] sauf à la fin de la dernière ligne de réécriture.

Est-ce OK ?


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3974
Inscription: 16 Nov 2004

Re: Htaccess : redirection permanente avec des variables

Message le Dim Sep 13, 2009 12:12

autant laisser l'ancienne

met des mots clés dans tes urls, c'est devenue incontournable


Code: Tout sélectionner
<?php

function format_url( $url, $type = '' ){
$url = preg_replace("`[.*]`U","",$url);
$url = preg_replace('`&(amp;)?#?[a-z0-9]+;`i','-',$url);
$url = htmlentities($url, ENT_COMPAT);
$url = preg_replace( "`&([a-z])(acute|uml|circ|grave|ring|cedil|slash|tilde|caron|lig);`i","\1", $url );
$url = preg_replace( array("`[^a-z0-9]`i","`[-]+`") , "-", $url);
$url = ( $url == "" ) ? $type : strtolower(trim($url, '-'));
return $url;
}

?>


et ton .htaccess devient

# article.php?id=25
# article-le-titre-de-mon-article_25.html
RewriteRule ^article-([A-Za-z]+)_([0-9]+)\.html$ /article.php?id=$2 [L]

pour l'utiliser:

tu formate le titre
: $titre_reecrit = format_url($titre,$type);

et voici l'url terminé: echo '<a href="article-'.$titre_reecrit.'_'.$ton_id.'.html">Titre article</a>';

et la ca vaut le coup de faire de la réécriture :D :D


jojohit
WRInaute discret
WRInaute discret
 
Messages: 59
Inscription: 12 Mai 2008

Re: Htaccess : redirection permanente avec des variables

Message le Dim Sep 13, 2009 12:40

Merci pour cette fonction.

En fait je renseigne déjà l'URL de mes articles dans un champ MySQL car je la veux volontairement parfois différent du titre.

Est-ce impératif d'avoir le flag [L] après chaque ligne de réécriture ou dois-je le mettre qu'après la dernière ligne de réécriture ?


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Formation recommandée sur ce thème :

Formation Netlinking (liens et référencement) : apprenez ce qu'est réellement un bon lien pour le référencement et surtout comment en obtenir. Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité