On reproche beaucoup au flash de limiter le référencement et la visibilité d’un site. Il y a aujourd’hui des moyens pour améliorer un petit peu ce défaut. Utiliser le système d’URL rewriting est un de ces moyens. Pour un blog par exemple, on peut décider de générer une url, c'est-à-dire une page pour chacun des articles. C’est ce que j’ai fais sur ce blog.
Ce sytème permet également des statistiques plus détaillées pour les accros des chiffres ?.

Les étapes principales :
1. Définir le format des URLs souhaitées
2. Générer ces URLs depuis le flash
3. Récupérer les paramètres dans le PHP afin de les transmettre au flash en cas de rechargement de la page
4. Gérer dans flash l’ouverture du site à la page correspondante à l’url en cas de rechargement
5. Générer le sitemap avec le même modèle d’url afin que google puisse scanner chaque page du blog ou site.
Je pars sur l’exemple de ce blog, après bien sur c’est applicable à n’importe quel type de site

1. Définir le format des URLs souhaitées
Elles doivent contenir la ou les variables qui permettront à flash d’ouvrir le site à la bonne page.
Exemple : http://flashblog.lutincapuche.info/#idCat=2&idArticle=80&la-librairie-javascript-jqueryJe récupère la catégorie et l’id de mon article.
J’ai rajouté le titre de la page car cela améliore le référencement des pages. Wordpress par exemple rajoute un champ dans la base de données qui formate le titre sans accents, ni espace ni caractères spéciaux afin de le rendre optimisé pour un affichage dans l’url.
J’ai décidé de rajouté 5 pages correspondant aux 5 onglets sur la gauche :
Les urls sont de la forme :
http://flashblog.lutincapuche.info/#page=Chercher
Je récupère la variable page.
Prévoyez donc de passer en paramètre au flash lors de son appel dans le html ces différentes variables.
Ce format d’url est ensuite utilisé dans le flash, dans le site map, et dans le html.
2. Générer ces URLs depuis le flash
La fonction AS toute simple qui permet de modifier directement l’url dans la barre de navigation :
[as]
import flash.external.ExternalInterface
function reecriture_url(tag){
ExternalInterface.call("eval",'location.href="http://blog.lutincapuche.info/#'+tag+'" mce_href="http://blog.lutincapuche.info/#'+tag+'"');
}
[/as]

Et de l’appeler lorsque un évènement affiche un article ou une partie de votre site.
[as]
monBouton.onPress=function(){
monTag = "idCat="+idCat+"&idArticle="+ idArticle +"&"+TitreArticle ;
reecriture_url(monTag) ;
}
[/as]

3. Récupérer les paramètres dans le PHP afin de les transmettre au flash en cas de rechargement de la page
Pour que la fonction ExternalInterface fonctionne, il faut l’utiliser avec le #. Peut être que quelqu’un a réussi à le faire marcher avec autre chose… qu’il le fasse savoir.
Donc on ne peut récupérer directement les variables en $_GET, il faut passer par un découpage de chaîne de caractères.
Ici un exemple, mais chacun a sa méthode !
[javascript]
function retourne_cat(){
var url = window.location.href;
var posparamUrl = url.indexOf("#",0);
var url = url.substr(posparamUrl+1,500);
var posparamUrl = url.indexOf("#",0);
var paramUrl = url.substr(posparamUrl+1,500);
var posAnd = paramUrl.indexOf("&",0);
var chaineCategorie = paramUrl.substr(0,posAnd);//idCat=0
var idCategorie = chaineCategorie.substr(chaineCategorie.indexOf("=",0)+1,100);//idCat=0
return idCategorie;
}
//idem pour l’id article
[/javascript]

Vous pouvez bien sur mettre des noms de variables moins longs et moins explicites, c’est même d’ailleurs conseillé (note a moi-même) !
Ensuite on appelle le flash en lui transmettant ces paramètres.

4. Gérer dans flash l’ouverture du site à la page correspondante à l’url en cas de rechargement
Ici il est très dur de donner un exemple générique, car chaque fonction est différente.
Les variables récupérées portent le nom de celles envoyées de puis le html, c'est-à-dire ici _root.idCategorie et _root.idArticle.
Ensuite après avoir chargé mon XML, suivant si ces variables sont définies ou non, j’affiche l’accueil du blog ou je l’ouvre directement à la section indiquée.
Petit conseil : pour simplifier ce fonctionnement, utiliser l’id base de données de l’article comme référence dans le flash. Il est unique, et permet d’éviter de trop s’embrouiller dans les indices….

5. Générer le sitemap avec le même modèle d’url afin que Google puisse scanner chaque page du blog ou site.
Exemple de génération de sitemap ici
Générez en php à partir d’une requête le sitemap de votre site. Enregistrer ensuite le fichier sitemap.xml à la racine de votre site et mettez le à jour à chaque nouvelle insertion dans votre site
Par exemple : réécriture du fichier sitemap à chaque nouvel enregistrement ou modification d’une entrée.
Ce sitemap doit être structuré de la même manière que votre site, il doit représenté toutes les pages accessibles dynamiquement et affiché exactement les mêmes URLs.