Récupérer et re-diriger les erreurs 404 en masse

Si vous utilisez les services de Google et notamment les "Outils pour les webmasters", vous savez sans doute que Google vous permet de récupérer les erreurs d'exploration de votre site dont les erreurs 404 (Exploration » Erreurs d'exploration). Là, vous avez la possibilité de télécharger les erreurs au format "CSV" ou "Google Documents" et pour ce petit tutoriel, nous allons exploiter le format "CSV".

Dans mon cas et en ouvrant ce fichier "CSV" avec Notepad++, je me suis rendu compte que chaque ligne commencent toujours par "http://" suivi d'au moins une virgule "," et c'est en utilisant ces deux points que l'on peut filtrer uniquement les url du fichier et générer directement le code pour effectuer des re-directions dans un fichier .htaccess.

Le code ci-dessous permet donc de générer des re-directions en masse en utilisant "RedirectPermanent" et pointant vers la même url comme ci-dessous :
RedirectPermanent /une-page-en-erreur-404.php http://creer-un-site.fr
RedirectPermanent /une-autre-page-en-erreur-404.php http://creer-un-site.fr
Pour l'utiliser, c'est très simple. Vous copiez/collez le code dans un fichier "php" puis vous insérez l'url de votre site dans la variable "$url_de_votre_site" (sans slash "/" à la fin) et pour finir vous indiquez dans la variable "$fichier_a_ouvrir" (en fin de code) l'url menant vers le fichier CSV.
<?php
	header("Content-Type: text/html; charset=utf-8");	
	//Url de votre site sans / à la fin
	$url_de_votre_site = "http://creer-un-site.fr";
	
	function remplace($chaine){
		global $url_de_votre_site;		
		$trouve = Array("#$url_de_votre_site/#", "#,#");
		$remplace = Array("<span style=\"color:green;\">RedirectPermanent</span> <span style=\"color:red;\">/</span>", " <span style=\"color:blue;\">$url_de_votre_site</span>");
		$chaine = preg_replace($trouve, $remplace,$chaine);
		return $chaine;
	}
	
	function Affiche($document){
		if ($ouverture=fopen($document, "rb")) {
			if ($lecture=stream_get_contents($ouverture)){
				//Motif à trouver
				$motif='#http://(.*?),#is';
				preg_match_all($motif,$lecture,$sortie,PREG_PATTERN_ORDER);
				//tableau
				/*echo '<pre>';
					print_r($sortie);
				echo '</pre>';*/
				//On boucle
				foreach($sortie[0] AS $sorti){
					//On aplique la fonction remplace()
					echo remplace($sorti).'<br/>';
				}
				return $lecture;
			}
			else{ 
				return 'La page n\'a pas pu être scannée ';
			}
		}
		else{ 
			return 'La page n\'a pas pu être scannée ';
		}
		fclose($ouverture);
	}
	//Url du fichier CSV
	$fichier_a_ouvrir =  Affiche('CrawlErrors.csv');	
?>
Note : les couleurs insérées dans le code servent à voir rapidement si le code est correctement généré.

Voilà, reste plus qu'à copier/coller le code dans votre fichier .htaccess.
Voir/déposer un commentaire (0) | Signaler un problème