Rewriting et fonction php pour modifier les liens internes

WRInaute impliqué
Bonjour,

Je suis en possession d'un site dont je ne m'occupe plus depuis des années. Ce site était à l'origine utilisé pour une précédente activité et ayant mis fin à celle-ci, je l'ai laissé mourir.

Au fil des ans, j'ai bossé sur ce site afin d'éventuellement le relancer (il aurait été dommage de perdre son contenu). J'ai donc décidé de le refaire de A à Z. Il est donc bientôt terminé, mais j'ai besoin de mettre en place l'url rewriting.
Pour tout ce qui se trouve dans le .htaccess, je n'ai aucun soucis, je sais faire.

Mon problème se situe dans la modification des liens internes. Il me serait complexe de tout remodifier à la main afin d'appliquer le rewriting. Je voulais donc faire une fonction rewriting() avec une regex qui modifierai mes liens automatiquement, sans à avoir à modifier tous les liens. Est-ce judicieux ? Le problème c'est que je ne connais rien en regex et je n'ai pas trouvé un tuto simple sur le rewriting pour faire ce que je souhaite. Cela ne devrait pas être très compliqué, mais j'avoue ne pas trouver les infos permettant de le faire.

Il y aurait bien la solution de tout changer les liens mais ça ne me semble pas satisfaisant. Suis-je en train de me compliquer la vie ? Comment faîtes vous pour vos sites ?

Mon problème est simple, j'ai des pages en news.php avec une à 3 variables maxi, que je voudrait changer en news-titre-id.html.

Quelle est la meilleure solution et la plus propre ?

Merci
 
WRInaute passionné
défini une fonction qui te génère chaque type de lien. par exemple avec en paramètre id et titre et qui te retourne l'url vers la news.
de toute façon il faut bien modifier le contenu de toutes les pages pour remplacer les anciens liens par les nouveaux.
 
WRInaute accro
les liens dans ton site sont en durs ?
moi les liens présents dans le contenu et qui sont des liens internes sont générés par une fonction, donc il me suffit de changer la fonction, mais toi, tout dépend de comment sont stockés tes liens.

nb : si tu sais faire une regex qui transforme "à la volée" tes liens, il te suffit de l'appliquer a ton contenu pour qu'ils soient modifiés une bonne fois pour toute
 
WRInaute impliqué
Merci pour vos réponses.

Les liens sont en durs dans le code PHP.

Ce que je voulais faire c'était une fonction dans ce style :

Code:
<?php 
echo '<a href="'.rewriting('news.php?id='.$id).'">News '.$Title.'</a>';
?>

Avec la fonction rewriting() qui ferait la modifiction à la volée. Un peu comme sous oscommerce qui utilise une fonction tep_href_link() qui est bien pratique. Si on a une modification à apporter, on la fait que dans le code de la fonction et non dans toutes les pages. D'où l'intérêt.

Le seul problème c'est que je n'ai pas trouvé de doc sur les regex et le rewriting afin que je puisse comprendre comment l'appliquer. J'avoue n'avoir jamais fait de regex. Et la doc PHP sur le sujet ne me parle pas du tout.
 
Discussions similaires
Haut