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

katarina999 Messages postés 75 Statut Membre -  
katarina999 Messages postés 75 Statut Membre -
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 ! ;)

1 réponse

  1. Zempachi Messages postés 7572 Statut Contributeur 906
     
    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
    1. katarina999 Messages postés 75 Statut Membre
       
      Je vais tenter d'implémenter cela à mon code actuel.

      Merci !

      Bonne journée ! ;)
      0