Accueil > Boîtes à outils > FAQ > Une autre solution pour les redirections

Une autre solution pour les redirections

Une contribution de Sébastien pour webmestres utilisant Linux et ayant besoin de rediriger un site constitué de nombreux fichiers html.

Une contribution de Sébastien pour webmestres utilisant Linux et ayant besoin de rediriger un site constitué de nombreux fichiers html.

Il peut arriver que l’on ait à transférer un site aux nombreuses pages HTML depuis un serveur qui ne gère pas les fichiers de configuration « .htaccess ». Ce cas est typique de « Club-Internet », devenu successivement Neuf puis SFR (enfin on sait plus très bien mais ce n’est pas le sujet). La page intitulée « Redirection automatique de toutes les pages d’un site vers un autre » est donc bien inutile en ce cas puisque cela ne peut pas fonctionner. Il faut donc envisager de se passer de « .htaccess ». Comme certain site sont ourdis à la main, avec des fichiers HTML statiques (je sais, c’est de plus en plus rare), en changer la place sur le Web (par exemple sur Ouvaton...) implique qu’il ne reste plus que la balise META pour arriver à faire faire une redirection correcte même s’il reste entendu que ce n’est pas ce qu’il y a de mieux en matière d’indexation par les moteurs de recherches.

Commencer par copier la totalité du site dans un dossier quelconque et éliminer ce qui n’est pas essentiel (ménage). La redirection ne pouvant se faire que sur les fichier HTML on élimine tous les fichiers JPG, GIF, PNG, MID, WAV, MP3, PDF, RTF &c.

 for file in $(find -name "*.jpg") ; do rm $file ; done

Il est nécessaire de créer un fichier modèle et le nommer « template.htm » sur le modèle :

Stocker template.htm juste dans le répertoire juste au dessus de la racine du site, puis en mode console (Linux). Se positionner dans le répertoire racine du site (cd copie).

Entrer la ligne magique qui :

- Fait la liste de tous les fichiers à l’extension « .htm » en éliminant le premier « ./ » au début de chaque adresse.
- Écrase TOUS les fichiers de la liste précédemment établie par le modèle « ../template.htm ».
- Remplace la chaîne « URL_DU_FICHIER » par « http://monsite.ouvaton.org/ » suivie du cheminement du fichier DANS chaque fichier.


#             Liste des fichiers                     ; Écrase les fichiers           ; Remplace L'URL par une nouvelle.
for file in $(find -name "*.htm" | sed -e 's#\./##g'); do cat ../template.htm > $file; sed -i 's#URL_DU_FICHIER#http://monsite.ouvaton.org/'$file'#g' $file; done

Cinq cent fichiers sont ainsi écrits en quelques instants, chacun possédant sa balise de redirection META qui lui soit propre. Il ne reste plus qu’à retransférer la totalité des fichiers au format HTML pour que les navigateurs (et les moteurs de recherche) puissent assurer la redirection, ce qui se fait sans problème par FTP.

Coopérativement,

Sébastien