PHP/MySQL : problème affichage articles

Bonjour,

Je stocke des articles dans une base de données MySQL.

La listes des articles (10 articles par page) sur mon site se fait via les URL suivantes :
http://mon_domaine.fr/index.php?page=actualite&nb=0
http://mon_domaine.fr/index.php?page=actualite&nb=1
http://mon_domaine.fr/index.php?page=actualite&nb=2
...
ou nb=0=numéro de la page (affiche les 10 derniers articles)
nb=0=les 10 articles les plus récents
nb=1=du 11ième au 20ième articles les plus récents
...

L'affichage des articles se fait via l'URL suivante :
http://mon_domaine.fr/index.php?page=actualite&nb=0&id=345
http://mon_domaine.fr/index.php?page=actualite&nb=1&id=250

ou id= identifiant MySQL de l'article

Lorsque un article passe de la page 1 à la page 2 (par exemple) l'URL pour le visualiser change :
AVANT : http://mon_domaine.fr/index.php?page=actualite&nb=0&id=250
APRES : http://mon_domaine.fr/index.php?page=actualite&nb=1&id=250

Du coup les moteurs de recherches ne trouvent plus l'article. Ils référencent l'article à l'URL http://mon_domaine.fr/index.php?page=actualite&nb=0&id=250 alors qu'il est visible à cette nouvelle URL http://mon_domaine.fr/index.php?page=actualite&nb=1&id=250.

Lorsqu'un internaute surfe sur mon site, il n'y a pas de pbs puisque les URL sont correctes. Par contre lorsque l'internaute vient de google ou autre moteur de recherche, il y a souvent des pbs.

Je voudrais donc mettre en place un code php gérant les choses de la façon suivante :
- continuer de la même façon lorsque l'URL source vient de mon_domaine.fr
- mettre en place une solution lorsque la requête de vient pas de mon domaine pour afficher correctement l'article

Quelqu'un aurait il une ou des idée(s) ?

Merci d'avance
Configuration: Windows XP
Firefox 3.0.16

6 réponses

  1. bon je sens que je ne ferai pas ça ce soir, ça va entrainer pas mal de modifs ...

    merci de ton aide

    @+
    0
    1. en allant sur ton site j'ai pensé a un truc :

      le nb tu n'en a pas besoin du tout tu peux le calculer : tu fait un

      select count(article) where date>(select date from article where id=id

      et après tu récupère ton nb avec un modulo
      0
      1. exemple concret :

        http://www.handball.fr/index.php?page=page_actu&nb=1&id_actu=173#173
        => cet article s'affiche

        demain j'ajoute des articles et celui la (id=173) passe en page 2 (nb=2) mais les moteurs de recherche ne le verront pas...
        http://www.handball.fr/index.php?page=page_actu&nb=2&id_actu=173#173
        => cet article ne s'affiche pas

        voila ce que je cherche à résoudre ...

        Du coup, je pensais faire un test :
        si la requete vient de handball.fr je traite comme aujourd'hui
        si la requete vient de l'extérieur, je prend juste page=page_actu et id_actu=173

        Peux tu m'aider ?
        0
        1. tu n'a pas besoin de du "nb" pour afficher un article, tu en a besoin pour naviguer sur tes pages ?

          en gros :

          SI $id alors
          select * from article where id=$id
          SiNONSI £nb alors
          select * from article limit $nb*20, $nb

          fin

          et comme cela peu importe d'ou il vient si l'id est correcte il trouvera l'article
          0
          1. ne tiens pas compte du "nb" si tu as l "id"
            0