Besoin d'aide pour une redirection

WRInaute occasionnel
Bonjour,

Depuis 5 jours je perds chaque jours du trafic. Hier j'en ai perdu 1/4, ce qui commence à faire beaucoup pour moi.
La perte est progressive, au début j'ai mis ça sur "les beaux jours" jusqu'à ce que par hasard j'aille faire un tout sur GWT et là ... je me suis rendu compte que j'avais une trentaine de page en 3 exemplaires chacune ! (suite à une erreur de code et suite à un oublie). Un DC interne donc.

Question 1 : Juste en passant, pensez-vous que cela puisse être la raison de ma baisse de traffic très progressive?
Je ne pense pas que ce lié à l'animal sinon je pense que j'aurais une chute brusque..

Question 2 et celle qui fait l'objet de ma venue : j'ai besoin d'aide pour rediriger ces pages.
Le regex et le htacess c'est pas ma tasse de thé, donc si bonne âme passe par là pour m'aider ça serait gentil :)

Donc pour résumé j'ai :

-http://www.monsite.com/anecdote_topic.php?t=259.php
et
-http://www.monsite.com/anecdote_topic.php?t=259
et
-http://www.monsite.com/Dossiers/Jeux/10-chien-pour-la-famille.php

C'est trois liens ont la même et unique page et je voudrais rediriger les deux premiers vers la troisième
en sachant j'ai ça :

Code:
RewriteRule ^(.*)/Jeux/(.*)\.php$ /oss_loisirs.php?nom=$2 [L]

qui me sert pour des fichiers que j'ai déjà dans le dossiers Jeux.

Alors j'ai bien essayé en faisant ça :
Code:
RedirectPermanent  /anecdote_topic.php?t=259.php http://www.monsite.com/dossiers/Jeux/10-chien-pour-la-famille.php

Mais bien entendu ça ne fonctionne pas ...

Merci d'avance pour votre aide
 
WRInaute occasionnel
Personne pour m'aider?? :(

Mes pages sont classés au top 3, ça m'embête vraiment de devoir les supprimer...
 
WRInaute accro
tu as un souci a l'accueil déjà car tes url sont présentes sous une forme que tu souhaite supprimer (http://www.example.com/anecdote_topic.php?t=259.php) il faut donc que tu commence par les afficher dans la version que tu souhaite utiliser.

Après difficile de te répondre car les urls d'exemple que tu donne n'ont pas de relation logique entre elle donc on ne peut pas te donner une règle de réécriture.
 
WRInaute occasionnel
Bonjour Zeb :) et merci pour ta réponse

Je dois me mélanger les pinceaux..En fait cette url forme d'url est très bien référencé, c'est pour ça qu'en attendant je la laissais pour pas perdre plus de trafic que ce que j'en perds déjà ..

A la base je voulais simplement virer les url sous cette forme :
http://www.monsite.com/anecdote_topic.php?t=259.php

et ne garder que celles-là :
http://www.monsite.com/anecdote_topic.php?t=259

Puis j'ai vu que j'avais encore ces articles sous cette forme
http://www.monsite.com/Dossiers/Jeux/10-chien-pour-la-famille.php

Ce qui d'un point de vue référencement est mieux.

Pour moi je vois deux solutions :
- soit j'arrive à rediriger mes pages d'une manière ou d'une autre
- soit je dois supprimé les premières url et donc perdre leur référencement.

Car toutes ces formes d'url sont indexés et ont le même contenu...

Une redirection de http://www.monsite.com/anecdote_topic.php?t=259 vers http://www.monsite.com/Dossiers/Jeux/10-chien-pour-la-famille.php est impossible?

En tout cas 'jessaie plein de truc sans succès :? :?


Edit: si c'est pas possible, ça devrait être possible de rediriger les pages : http://www.monsite.com/anecdote_topic.php?t=259.php vers http://www.monsite.com/anecdote_topic.php?t=259
et je supprime les autres qui sont m oins bien référencé ?
 
WRInaute accro
pour le avec '.php' vers le sans '.php' tu peux essayer un truc du genre :

RewriteRule ^(.*)anecdote_topic.php?t=(.*)\.php$ anecdote_topic.php?t=$2 [L, R=301]

histoire de te débarrasser des 'php' à la fin. j'ai pas testé je doute que ça fonctionne faut surtout comprendre que le "(.*)\.php" de la fin va permettre de récupérer l'id du sujet et de renvoyer dessus sans le php en 301 bien sur pour ne pas perdre ce que tu pourrais avoir la dessus.

Concernant tes url réécrites du genre "Dossiers/Jeux/10-chien-pour-la-famille.php" c'est plus délicat car il n'y a pas de lien entre l'url a paramètre et l'url finale ce qui me fait penser que tu dois avoir ça dans une base.

Si tel est le cas tu devrais intercepter toutes les url a paramètre (avec ou sans '.php') et les renvoyer sur un script qui lui ferait la requête sur la base pour renvoyer en 301 via php vers l'url réécrite. Il conviens dans tous les cas de faire en sorte que tes pages ne contiennent plu ces urls pour éviter les redirection pour les internautes et les faire disparaitre progressivement de l'index.

Sinon en effet plusieurs pages profondes identiques (accessibles via des url différentes) peuvent être la source de ta perte de trafic.
 
WRInaute occasionnel
ça me renvoie sur une erreur 500 qui disparaît en enlevant le L ou le R ... ensemble, ça plante je ne sais ps pourquoi.
Et sans planter ça ne redirige pas...

Effectivement toutes mes fichiers sont en base de donnés, j'ai eu un très bon professeur pour ça :wink:
Donc si je comprends bien ce que tu me dis je dois rediriger toutes mes url vers un script qui lui réécrira et redirigera en 301 sous une forme propre.

Pourquoi pas, ça me parait effectivement la solution la plus propre dans toutes cette pagaille.

Mais pour ça il faut d'abord que j'arrive à renvoyer ces urls sur le fichier en question...avec htaccess.

Et là logiquement avec ça ça devrait fonctionner :

Code:
RedirectPermanent  /anecdote_topic.php?t=259.php   http://www.monsite.com/redirection.php

je comprend pas pourquoi ça ne fonctionne pas, j'ai toujours fais les redirection de cette façon... en prenant un autre article d'un autre domaine ça fonctionne et là non . Je dois avoir une ligne quelque part qui fou la ****

Edit : bon c'est bon j'ai réussi a renvoyer les pages /anecdote_topic.php?t=259 avec ou sans php vers mon fichier redirection.php
avec ça :

Code:
<?php
header("Status: 301 Moved Permanently", false, 301);
header("Location: http://www.monsite.com/redirection.php"); 
exit();

?>

Et les url du type /dossiers/Jeux/xxxxxxxxxxx.php
sont rediriger via htacess .


Maintenant faut que je m'occupe du dit - script.
 
WRInaute occasionnel
Bon, alors voici ce que j'ai fait, et j'aurais besoin de ton avis histoire d'être sûre de ne pas refaire de boulette

Sur la page anecdote_topic j'ai écris ça :

Code:
<?php
if ((isset($_GET['t'])) && (!empty($_GET['t'])))
{
		$redirection= ($_GET['t']);
			
}
else
	echo 'error';
	
header("Status: 301 Moved Permanently", false, 301);
header("Location: http://www.monsite.com/redirection.php?param=$redirection"); 
exit();
?>

Et sur la page redirection.php j'ai écris ça :

Code:
if ((isset($_GET['param'])) && (!empty($_GET['param'])))
	{	
		$requete = ($_GET['param']);
		$req_table = mysql_query ("SELECT * FROM ftl_loisir WHERE id='$requete'");
		$oss_loisir = mysql_fetch_assoc($req_table);
	}
else
 echo 'ne marche pas';

	if(isset($oss_loisir['titre']))
	{	
		header("Location: http://www.monsite.com/dossiers/Jeux/".$oss_loisir['url'].".php"); 
	}
	else
	echo 'error';//renvoyer vers une suppression définitive

Je garde la structure de l'url de la forme /dossiers/Jeux/xxxx.php
Et sur htaccess j'ai ça :
Code:
RewriteRule ^(.*)/Jeux/(.*)\.php$ /oss_loisirs.php?nom=$2 [L]

Au final, les url de la forme /anecdote_topic.php?t=259.php ressortent sous forme /dossiers/Jeux/xxx.php
dont xxx correspond à l'url de l'id (ici 259).

Il va me rester quelque fichiers que je vais renvoyer vers une page 404 au derniers echo et ainsi pouvoir les désindexer/supprimer avec google à moins qu'il y ai une solution plus propre.

Voilà, qu'en penses-tu Zeb?
 
WRInaute accro
freestyle83 a dit:
Bon, alors voici ce que j'ai fait :
Sur la page anecdote_topic j'ai écris ça :
[...]
Et sur la page redirection.php j'ai écris ça :
[...]
Et sur htaccess j'ai ça :

Hummm il y a comme un truc qui me chicote on dirait qu'ainsi tu va enchainer plusieurs redirections a la suite ce qui n'est pas top. je pense que tu devrais grouper les deux action pour n'avoir qu'un saut a faire

page anecdote_topic :
Code:
<?php
if ((isset($_GET['t'])) && (!empty($_GET['t']))){
      $redirection = ($_GET['t']); 
}
$req_table = mysql_query ("SELECT * FROM ftl_loisir WHERE id='$redirection'");
$oss_loisir = mysql_fetch_assoc($req_table);
header("Status: 301 Moved Permanently", false, 301);
header("Location: http://www.monsite.com/dossiers/Jeux/".$oss_loisir['url'].".php");
exit();
?>
Si j'ai bien compris ta façon de procéder qui semble fonctionner là tu renvoie tout directement en une fois sur le bon script.
Après ça ne semble pas gérer la réécriture qui donnait une url du style "http://www.monsite.com/Dossiers/Jeux/10-chien-pour-la-famille.php" auquel cas il faut peut être extraire le titre de l'article (si c'est ça qui conditionne le "10-chien-pour-la-famille.php") avec ta requête pour forger une bonne adresse et l'envoyer avec la même commande header.
 
WRInaute occasionnel
C'est ce que je me suis dit après coup... "Pourquoi je le fais sur deux page alors que ça peut très bien fonctionner sur une seule". J'ai du m'arrêté entre temps et donc là je viens de testé et effectivement ça fonctionne aussi comme ça et c'est tout aussi bien. (Bon j'ai rajouté ma condition pour des fichiers qui n'existe plus.)
Ca évite une redirection.

Pour les url de la forme "http://www.monsite.com/Dossiers/Jeux/10-chien-pour-la-famille.php", je n'y touche pas car je redirige les url précédentes vers la même forme que celle-ci.

Ainsi /anecdote_topic.php?t=259.php devient /Dossiers/Jeux/10-chien-pour-la-famille.php

Je crois qu'on peut dire qu'on a réussi à résoudre le problème. :D Merci à toi Zeb
 
Discussions similaires
Haut