Url rewrite (htaccess & php) et référencement

Fermé
katarina999 Messages postés 68 Date d'inscription dimanche 30 janvier 2011 Statut Membre Dernière intervention 28 avril 2015 - 18 avril 2014 à 10:33
katarina999 Messages postés 68 Date d'inscription dimanche 30 janvier 2011 Statut Membre Dernière intervention 28 avril 2015 - 22 avril 2014 à 13:38
Bonjour,

Je suis confrontée à un petit problème de réécriture d'url.

J'ai utilisé un URL rewrite dans un htaccess.

Mes liens sont donc passés de www.monsite.com/fiche.php?ID=1 à www.monsite.com/fiche1.html.

Le problème est que le lien reste le même dans ma page... (www.monsite.com/fiche.php?ID=1)
Sous Chrome, on peut le voir en bas de page lorsqu'on passe la souris sur le lien sans cliquer.

Est-ce que cela influe-t-il négativement sur le référencement ?
Si oui, faut-il changer tous les liens manuellement à l'aide de php ?
Si oui, comment ?

Merci de bien vouloir m'aider.

Bonne journée ! ;)

A voir également:

1 réponse

Zempachi Messages postés 7472 Date d'inscription vendredi 14 octobre 2005 Statut Contributeur Dernière intervention 5 juin 2020 906
Modifié par Zempachi le 19/04/2014 à 14:23
Bonjour katarina999,

Est-ce que cela influe-t-il négativement sur le référencement ?
Oui car au final ce sont les URLs présentes dans le code qui seront indexées.

Si oui, faut-il changer tous les liens manuellement à l'aide de php ?
Oui, il faut modifier les URLs présentes dans le code pour qu'elles correspondent à celles du "rewrite"

Si oui, comment ?
Si il n'y a pas de fonction qui génère les URLs, alors il n'y aura pas d'autres choix que de faire les modifs à la mano.
Dans ce cas, il serait préférable de créer une fonction getUrl() qui prendrait en argument l'ID et le titre pour retourner l'URL formatée et qui pourrait ressembler à:

function getUrl($id,$title) {
  return slugify($title).$id.'.html';
}
function slugify($text)
{
    // replace non letter or digits by -
    $text = preg_replace('~[^\\pL\d]+~u', '-', $text);
 
    // trim
    $text = trim($text, '-');
 
    // transliterate
    if (function_exists('iconv'))
    {
        $text = iconv('utf-8', 'us-ascii//TRANSLIT', $text);
    }
 
    // lowercase
    $text = strtolower($text);
 
    // remove unwanted characters
    $text = preg_replace('~[^-\w]+~', '', $text);
 
    if (empty($text))
    {
        return 'n-a';
    }
 
    return $text;
}
/*
EDIT : la fonction slugify permet de supprimer les caractères spéciaux & les espaces et de mettre tout en minuscule.
Ainsi, le titre "Mon fichier" deviendra "mon-fichier".
Cela donc donne l'URL mon-fichier1.html
*/

Code à adapter selon les règles de réécriture.

Il faudra ensuite pour toutes les URLs utiliser cette fonction en saisissant les bons arguments... à la mano :/

Bon courage.


non, non, on peut pas!
Membre fondateur du FJH
v(^_^)v
1
katarina999 Messages postés 68 Date d'inscription dimanche 30 janvier 2011 Statut Membre Dernière intervention 28 avril 2015
22 avril 2014 à 13:38
Je vais tenter d'implémenter cela à mon code actuel.

Merci !

Bonne journée ! ;)
0