Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/03/2007, 13h07   #1
Nouveau Membre du Club
 
Inscription : janvier 2006
Messages : 90
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 90
Points : 26
Points : 26
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,
laloupiote est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2007, 13h26   #2
Membre Expert
 
Inscription : octobre 2002
Messages : 1 141
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : octobre 2002
Messages : 1 141
Points : 1 204
Points : 1 204
Envoyer un message via MSN à Raideman
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 :
1
2
3
4
 
RewriteEngine on
 
RewriteRule ^anciennepage\.html index.php?id=tanouvellepage [L]
Raideman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2007, 14h28   #3
Nouveau Membre du Club
 
Inscription : janvier 2006
Messages : 90
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 90
Points : 26
Points : 26
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...
laloupiote est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2007, 14h44   #4
Nouveau Membre du Club
 
Inscription : janvier 2006
Messages : 90
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 90
Points : 26
Points : 26
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,
laloupiote est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2007, 14h55   #5
Membre chevronné
 
Avatar de Hervé Saladin
 
Développeur Web
Inscription : décembre 2004
Messages : 636
Détails du profil
Informations personnelles :
Âge : 30

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2004
Messages : 636
Points : 689
Points : 689
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 ....
__________________
Ne cliquez pas sur ce lien
Hervé Saladin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2007, 14h59   #6
Nouveau Membre du Club
 
Inscription : mars 2007
Messages : 33
Détails du profil
Informations personnelles :
Âge : 33
Localisation : Belgique

Informations forums :
Inscription : mars 2007
Messages : 33
Points : 36
Points : 36
Envoyer un message via MSN à sylvanillo Envoyer un message via Skype™ à sylvanillo
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.
sylvanillo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2007, 15h07   #7
Membre chevronné
 
Avatar de Hervé Saladin
 
Développeur Web
Inscription : décembre 2004
Messages : 636
Détails du profil
Informations personnelles :
Âge : 30

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2004
Messages : 636
Points : 689
Points : 689
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 ...
__________________
Ne cliquez pas sur ce lien
Hervé Saladin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2007, 15h25   #8
Nouveau Membre du Club
 
Inscription : mars 2007
Messages : 33
Détails du profil
Informations personnelles :
Âge : 33
Localisation : Belgique

Informations forums :
Inscription : mars 2007
Messages : 33
Points : 36
Points : 36
Envoyer un message via MSN à sylvanillo Envoyer un message via Skype™ à sylvanillo
ça c'est à voir en fonction du site et le taux d'incrustation

Si oui alors peut-être envisager les liens symboliques
sylvanillo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2007, 15h45   #9
Nouveau Membre du Club
 
Inscription : janvier 2006
Messages : 90
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 90
Points : 26
Points : 26
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.
laloupiote est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2007, 15h53   #10
Nouveau Membre du Club
 
Inscription : janvier 2006
Messages : 90
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 90
Points : 26
Points : 26
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.
laloupiote est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h23.


 
 
 
 
Partenaires

Hébergement Web