IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

redirection vers la nouvelle page


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 119
    Points : 73
    Points
    73
    Par défaut redirection vers la nouvelle page
    Bonjour,

    Avant mon site était construit avec un fichier xxxxxx.html (ou xxxxx.php) pour chaque page.
    Je viens de refondre complètement tout cela et, désormais, toutes mes données sont dans une base mysql et la nouvelle adresse de chaque page est du style index.php?id=xx
    Le problème, c'est que le nombre de visiteur a chuté de façon incroyable depuis que j'ai fait cette opération (j'utilise phpmyvisite). Alors que j'avais entre 100 et 150 connexions par jour auparavant, je n'en ai plus que moins d'une vingtaine maintenant !
    Je sais que beaucoup sont guidés par les moteurs de recherche et vont directement vers la page qu'ils recherchent et je voudrais les rediriger automatiquement vers la nouvelle adresse de cette page.
    Dans ma table, j'ai un champ qui contient l'ancienne adresse et je pensais faire une redirection.
    Pour cela, voilà ce à quoi j'avais pensé :
    j'utilise un .htaccess qui envoie les visiteurs vers une page d'erreur donnée.
    À partir de cette page, je pensais récupérer l'adresse recherchée par mon visiteur avec $_SERVER['HTTP_REFERER'] pour faire la conversion, ensuite, avec la nouvelle adresse...
    Ça fonctionne sur mon serveur de test, installé sur mon ordinateur, mais pas chez mon hébergeur ! $_SERVER['HTTP_REFERER'] n'est pas récupérée !
    D'où ça peut venir ?
    Auriez-vous une autre idée ? ou une suggestion pour me permettre d'exploiter la mienne ?

    Bien cordialement,

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Points : 1 504
    Points
    1 504
    Par défaut
    Tu peux te tourner vers une solution en url_rewriting si tu as mod_rewrite activé.
    Voici un petit exemple à placer dans le htaccess:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    RewriteEngine on
     
    RewriteRule ^anciennepage\.html index.php?id=tanouvellepage [L]

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 119
    Points : 73
    Points
    73
    Par défaut
    Oui, mais il faut bien que je récupère l'adresse initiale que le visiteur voulait visiter pour cela, non ?
    sinon comment savoir vers quelle page rediriger ?
    Ou alors, je n'ai pas compris ta suggestion...

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 119
    Points : 73
    Points
    73
    Par défaut
    De toutes façons, je viens de tester en suivant les conseils de cette page

    http://www.martiusweb.net/tutoriaux,03_01.html et le test n'est pas concluant : le mod_rewrite ne semble pas activé.

    Merci de ton aide néanmoins,

  5. #5
    Membre éclairé Avatar de Hervé Saladin
    Homme Profil pro
    Ingénieur d'études en développement et déploiement d'applications
    Inscrit en
    Décembre 2004
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur d'études en développement et déploiement d'applications
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2004
    Messages : 647
    Points : 799
    Points
    799
    Par défaut
    Salut,
    l'url rewriting est surement la solution la plus "propre", mais si tu ne peux pas le mettre en place à cause de ton hébergeur, en voici une autre :
    tu définis une page d'erreur 404 personnalisée que tu fais pointer vers un script php que tu créé spécialement.
    Dans ce script, tu récupères l'url demandée par le client (voir le tableau $_SERVER[] dans la doc php).
    Puis tu manipule cette url, tu la bidouille, tu la découpe, bref, t'en fais ce que tu veux pour récupérer les informations qui t'intéressent (ex nom de la page html, un paramètre passé en get qui identifie une ancienne page php ...), et tu détermine la nouvelle page à afficher.
    Si ton script trouve la page, tu fais un header("Location: ...), s'il ne la trouve pas, tu enregistre l'erreur dans un fichier de log, ça te permettra de garer une trace des fois ou ton script n'a pas trouvé la page, et ainsi de le compléter petit à petit ....

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    33
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 33
    Points : 41
    Points
    41
    Par défaut
    1. As-tu vérifié dans les access-logs d'apache les requêtes HTTP reçues?

    2. Une solution toujours possible est d'inclure des liens symboliques sur ton serveur qui pointent vers tes pages php et qui portent les noms de tes anciennes pages
    Le problème est de toutes façons un peu éphémère puisque les moteurs de recherche vont rapidement indexer les nouvelles pages.

  7. #7
    Membre éclairé Avatar de Hervé Saladin
    Homme Profil pro
    Ingénieur d'études en développement et déploiement d'applications
    Inscrit en
    Décembre 2004
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur d'études en développement et déploiement d'applications
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2004
    Messages : 647
    Points : 799
    Points
    799
    Par défaut
    Citation Envoyé par sylvanillo
    Le problème est de toutes façons un peu éphémère puisque les moteurs de recherche vont rapidement indexer les nouvelles pages.
    oui, ok pour le référencement, mais ça ne résoud que la mitié du problème, car tous les gens qui ont mis des favoris dans leur navigateur, ou les webmasters qui ont mis des liens sur leur site vers celui de laloupiote, tous ces liens sont désormais des liens morts, ce qui représente un gros manque à gagner en terme de visites ...

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    33
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 33
    Points : 41
    Points
    41
    Par défaut
    ça c'est à voir en fonction du site et le taux d'incrustation

    Si oui alors peut-être envisager les liens symboliques

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 119
    Points : 73
    Points
    73
    Par défaut
    Citation Envoyé par Hervé Saladin
    Dans ce script, tu récupères l'url demandée par le client (voir le tableau $_SERVER[] dans la doc php).
    Puis tu manipule cette url, tu la bidouille, tu la découpe, bref, t'en fais ce que tu veux pour récupérer les informations qui t'intéressent (ex nom de la page html, un paramètre passé en get qui identifie une ancienne page php ...), et tu détermine la nouvelle page à afficher.
    Bonjour,

    C'était ma première idée (d'après ce que je comprends, c'est bien à $_SERVER['HTTP_REFERER'] que tu pense ?), mais pour une raison que je ne sais pas expliquer, ça marchait tip top sur mon serveur de test, chez moi, mais ça ne marche pas sur le serveur de mon hébergeur.

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 119
    Points : 73
    Points
    73
    Par défaut
    Citation Envoyé par sylvanillo
    1. As-tu vérifié dans les access-logs d'apache les requêtes HTTP reçues?
    Excuse-moi, mais je ne sais pas faire ce que tu me suggères.

    Citation Envoyé par sylvanillo
    2. Une solution toujours possible est d'inclure des liens symboliques sur ton serveur qui pointent vers tes pages php et qui portent les noms de tes anciennes pages
    .

    Oui, mais difficilement faisable : j'ai plus de 500 pages (avec quelquefois peu de chose, mais ça fait quand même pas mal de liens à faire et les risques d'erreur sont importants.

Discussions similaires

  1. Réponses: 2
    Dernier message: 06/02/2013, 15h46
  2. [HTML 5] Redirection après un délai vers une nouvelle page
    Par Crachover dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 05/03/2010, 14h31
  3. Réponses: 4
    Dernier message: 21/03/2007, 16h03
  4. redirection vers la bonne page
    Par PAYASS59 dans le forum Langage
    Réponses: 6
    Dernier message: 30/01/2006, 11h30
  5. iis redirection vers une autre page
    Par wodel dans le forum IIS
    Réponses: 1
    Dernier message: 03/01/2006, 15h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo