Réécrire des URL "a posteriori"

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par OTP, 7 Juillet 2008.

  1. OTP
    OTP WRInaute accro
    Inscrit:
    16 Décembre 2005
    Messages:
    14 581
    J'aime reçus:
    3
    Bonjour,

    J'ai une série de pages www.example.com/nom_de_la_page.php où nom_de_la_page.php est le titre de la page et n'obéit pas à une règle logique.
    Je voudrais supprimer toutes ces pages php statiques pour les remplacer par une seule www.example.com/page.php?id=id_page dynamique.

    Je sais bien créer une table sql base qui fera les équivalents entre les id_page et les nom_de_la_page, mais quelle règle de réécriture utiliser, et comment faire "causer" ensemble .htaccess et sql ?

    Je n'ai aucune idée de comme faire ça, un peu d'aide sera la bienvenue !

    Merci d'avance,

    Michaël
     
  2. e-kiwi
    e-kiwi WRInaute accro
    Inscrit:
    23 Décembre 2003
    Messages:
    13 198
    J'aime reçus:
    1
    déjà, quel format d'url final veux tu ?
     
  3. OTP
    OTP WRInaute accro
    Inscrit:
    16 Décembre 2005
    Messages:
    14 581
    J'aime reçus:
    3
    Le même qu'en ce moment !
    Mais en dynamique.
     
  4. rudddy
    rudddy WRInaute passionné
    Inscrit:
    1 Août 2007
    Messages:
    2 125
    J'aime reçus:
    0
    vu que ca n'obéit à aucune règle tu sera obligé de aire une ligne par page dans ton htaccess
     
  5. OTP
    OTP WRInaute accro
    Inscrit:
    16 Décembre 2005
    Messages:
    14 581
    J'aime reçus:
    3
    On ne peut pas faire autrement ?
     
  6. rudddy
    rudddy WRInaute passionné
    Inscrit:
    1 Août 2007
    Messages:
    2 125
    J'aime reçus:
    0
    je ne pense pas

    tu devrais absolument mettre le id de la page dans ton url, mais tu ne veux pas changer le format (surement pour un problème de netlinking interne e externe) je te comprends

    out dépend de la quantité de page (plutôt 20 ou 200000 ?)
     
  7. OTP
    OTP WRInaute accro
    Inscrit:
    16 Décembre 2005
    Messages:
    14 581
    J'aime reçus:
    3
    Tu as raison, question de netlinking !
    Mince alors...
     
  8. Mumuri
    Mumuri WRInaute passionné
    Inscrit:
    3 Novembre 2004
    Messages:
    1 410
    J'aime reçus:
    0
    etape 1 : refait ton site en dynamique avec cette partie sql dont tu as parlés

    etape 2 : réécrit les urls avec les idpages dans toutes tes pages

    function url($idPage,$titleName=null){
    return "page.php?id=$idPage";
    }

    test que tout marche bien avec ton nouveau site


    etape 3 : récupére les noms des titres de tes pages et passe les à ta fonction plus haut, tu peux imaginer un truc dans ce genre là

    $isUrlRewriting=true;

    function url($idPage,$titleName=null){
    global $isUrlRewriting;
    if($isUrlRewriting)
    return $titleName."-".$idPage.".html";
    else
    return "page.php?id=$idPage";
    }


    etape 4 : met en place une régle de rewriting dans ton htcesss qui va te réécrire

    [a-zA-Z-]*."-".[0-9]+.".html" vers page.php?id={parametre2}

    notes : c'est que du pseudo code, le but est de comprendre comment çà marche pas pas que çà tourne direct...

    -------------

    EDIT j'avais pas vu les posts entre temps,

    si il est possible de ne pas mettre l'idpage dans l'url (c'est ce qui est fait sur spip), tu dois stocker le nom de ta page dans une colonne en plus dans ta table "article" .... mais dans ces cas là c'est peut être plus intelligent de passer à spip tout court

    ensuite, tu fais une redirection de toutes tes pages vers un page.php?title= et tu fais une sélection dans la base sur la colonne concerné ...
     
  9. rudddy
    rudddy WRInaute passionné
    Inscrit:
    1 Août 2007
    Messages:
    2 125
    J'aime reçus:
    0
    mumuri tu me rejoins : on es obligé de passer par un id, mais son netlinking sera mort ...
     
  10. OTP
    OTP WRInaute accro
    Inscrit:
    16 Décembre 2005
    Messages:
    14 581
    J'aime reçus:
    3
    Merci Mumuri mais j'ai seulement quelques URL (40 ou 50, pas plus) que je souhaite réécrire. Tout le reste (ou presque) l'es déjà. Ta méthode ne s'appliquera donc pas, si j'ai bien compris.
     
  11. Mumuri
    Mumuri WRInaute passionné
    Inscrit:
    3 Novembre 2004
    Messages:
    1 410
    J'aime reçus:
    0
    lis la fin ...
     
  12. rudddy
    rudddy WRInaute passionné
    Inscrit:
    1 Août 2007
    Messages:
    2 125
    J'aime reçus:
    0
    +10000
     
  13. OTP
    OTP WRInaute accro
    Inscrit:
    16 Décembre 2005
    Messages:
    14 581
    J'aime reçus:
    3
    Visiblement, je vais devoir faire en dynamique les futures URL de cette thématique, et réécrire les anciennes à la main (quitte à virer les moins parcourues).
     
  14. Mumuri
    Mumuri WRInaute passionné
    Inscrit:
    3 Novembre 2004
    Messages:
    1 410
    J'aime reçus:
    0
    le probléme c'est que son pattern doit pas être en conflit avec ces urls déjà rewrité, à la limite si tu as déjà un id dans tout tes autres urls rewrité, çà peut passer un truc [a-zA-Z-]*\.php
     
  15. Marie-Aude
    Marie-Aude WRInaute accro
    Inscrit:
    5 Juin 2006
    Messages:
    16 835
    J'aime reçus:
    209
    Tu peux parfaitement faire une seule ligne dans ton htaccess

    Etape 1 : tu fais une base de données avec la correspondance id - nom de page statique (en gardant la même)

    Etape 2 : tu fais un url rewriting sur la base du nom de la page que tu récupères en paramètres (get)

    Etape 3 : à l'intérieur de ta page index, tu interroges ta table de l'étape 1, et tu sors la correspondance entre id et nom

    Evidemment, si c'est du fait maison, on peux simplifier en donnant pour id le nom de la page.

    Ainsi, pour une page eolienne-beaufort.html

    ta rewrite rule sera
    Code:
    RewriteRule ^([a-zA-Z-]+)\.html$ /index.php?name=$1 [L]
    Tu as donc le nom en parametre, donc ton index sera appelé page.php?name=eolienne-beaufort

    Ensuite dans ton index php tu appelles ton id.

    Tu conserves tes urls d'origine avec ce système.
     
  16. OTP
    OTP WRInaute accro
    Inscrit:
    16 Décembre 2005
    Messages:
    14 581
    J'aime reçus:
    3
    Ok, j'ai lu la fin !
    Je vais voir ça.

    Je pensais qu'il y avait des moyen de faire simplement cohabiter .htaccess et sql ; je me suis donc trompé ?
     
  17. Marie-Aude
    Marie-Aude WRInaute accro
    Inscrit:
    5 Juin 2006
    Messages:
    16 835
    J'aime reçus:
    209
    Mais c'est simple ;)

    Sinon cela dépend de la config de ton serveur, il est possible de faire ça directement dans le .htaccess
     
  18. OTP
    OTP WRInaute accro
    Inscrit:
    16 Décembre 2005
    Messages:
    14 581
    J'aime reçus:
    3
    Même sur un mutu ?
     
  19. Marie-Aude
    Marie-Aude WRInaute accro
    Inscrit:
    5 Juin 2006
    Messages:
    16 835
    J'aime reçus:
    209
    Non pas sur un mutu :(
     
  20. OTP
    OTP WRInaute accro
    Inscrit:
    16 Décembre 2005
    Messages:
    14 581
    J'aime reçus:
    3
    Bouh.... ;)
     
Chargement...
Similar Threads - Réécrire Forum Date
réécrire /categorie.php?id=xxx en /categorie/id URL Rewriting et .htaccess 13 Septembre 2020
Réécrire url sans la variable Référencement Google 19 Avril 2018
Rediriger/réécrire toutes les pages index.html contenues dans plusieurs dossiers URL Rewriting et .htaccess 1 Mars 2016
Réécrire des articles automatiquement Rédaction web et référencement 23 Février 2016
URL rewriting : réécrire automatiquement un bout de l'url URL Rewriting et .htaccess 21 Juillet 2014
Réécrire les balises Title Débuter en référencement 14 Novembre 2013
Réecrire url avec lang URL Rewriting et .htaccess 13 Octobre 2013
réécrire .php en .html URL Rewriting et .htaccess 2 Janvier 2012
Réecrire l'url d'un répertoire vers le répertoire parent URL Rewriting et .htaccess 15 Mai 2011
réécrire index.php?id=xxx avec le titre d'un champs mysql URL Rewriting et .htaccess 14 Mars 2011
Réécrire des URL avec un p... de point d'interrogation ? URL Rewriting et .htaccess 10 Décembre 2010
HS: réécrire une url Débuter en référencement 28 Novembre 2010
Larry Page (Google) accuse Steve Jobs de réécrire l'histoire dans les mobiles Google : l'entreprise, les sites web, les services 12 Juillet 2010
Réécrire et OVH URL Rewriting et .htaccess 5 Juillet 2010
Réécrire une seule url ? avec .htaccess URL Rewriting et .htaccess 22 Juillet 2009
Réécrire URL (remplacer une url par un mot) URL Rewriting et .htaccess 17 Avril 2009
Réécrire les URL de pages existantes pour y changer un mots URL Rewriting et .htaccess 15 Avril 2009
[URL rewriting] Réécrire des pages multiples de 8 en page-1 URL Rewriting et .htaccess 6 Décembre 2008
Comment faire pour réécrire des url générées par script php URL Rewriting et .htaccess 28 Octobre 2008
Réécrire des articles pour sortir du duplicate content Référencement Google 21 Septembre 2008