Bonjour,
difficile de trouver un titre à mon post.
Alors voilà le contexte :
J'ai développé une galerie photo avec base de donnée : www.sylvaincedat.fr/galerie. Mes photos sont classés par pays.
Je me sert de l'erreur 404 pour faire une sorte d'URL rewriting afin de pouvoir gérer des URL "virtuelles" qui renvoient vers mes albums photo.
J'ai donc d'un côté le .htaccess suivant :
et de l'autre un bout de code dans mon fichier index.php qui récupère "l'URL virtuelle" et récupère les paramètres :
Par exemple une URL du type www.sylvaincedat.fr/galerie/Australie/Sydney/album_2.html sera traitée par le fichier index.php en récupérant les paramètres suivant :
- dossier (australie) et sous dossier (sydney)
- numéro de l'album (2)
J'en arrive donc à mon pb
:
il se trouve que certaines versions de navigateur renvoient quand même une erreur 404. Je ne sais pas si cela vient du navigateur qui "s'aperçoit" que le dossier n'existe pas sur le serveur ou si c'est une configuration du serveur de mon hébergeur (1and1) qui cause l'erreur. Mais sous firefox aucun pb. Je n'ai pu vérifier l'erreur que sus ie8.
Une question qui va dans la continuité : comment sont traitées de telles URLs virtuelles par les robots de référencement type google? Apparemment le robot google ne reconnait pas la page (test avec l'outil de soumission d'URL dans google webmaster)...
Modifié par trikiwoo (11 Feb 2010 - 15:28)
difficile de trouver un titre à mon post.
Alors voilà le contexte :
J'ai développé une galerie photo avec base de donnée : www.sylvaincedat.fr/galerie. Mes photos sont classés par pays.
Je me sert de l'erreur 404 pour faire une sorte d'URL rewriting afin de pouvoir gérer des URL "virtuelles" qui renvoient vers mes albums photo.
J'ai donc d'un côté le .htaccess suivant :
ErrorDocument 404 /galerie/index.php
et de l'autre un bout de code dans mon fichier index.php qui récupère "l'URL virtuelle" et récupère les paramètres :
if (preg_match('#galerie/(fr|en)/([a-zA-Z0-9-_/]+)/album_([0-9]+)\.html$#', $_SERVER['REQUEST_URI'], $match)) //album
{
header("Status: 200 OK", false, 200);
$lg=$match[1];
$dossier=$match[2];
$page=$match[3];
$test=1;
}
elseif (preg_match('#galerie/(fr|en)/([a-zA-Z0-9-_/]+)$#', $_SERVER['REQUEST_URI'], $match)) // Pays ou "sous-pays"
{
header("Status: 200 OK", false, 200);
$lg=$match[1];
$dossier=$match[2];
$test=2;
}
else {
header("Status: 200 OK", false, 200);
$test=0;
}
Par exemple une URL du type www.sylvaincedat.fr/galerie/Australie/Sydney/album_2.html sera traitée par le fichier index.php en récupérant les paramètres suivant :
- dossier (australie) et sous dossier (sydney)
- numéro de l'album (2)
J'en arrive donc à mon pb

il se trouve que certaines versions de navigateur renvoient quand même une erreur 404. Je ne sais pas si cela vient du navigateur qui "s'aperçoit" que le dossier n'existe pas sur le serveur ou si c'est une configuration du serveur de mon hébergeur (1and1) qui cause l'erreur. Mais sous firefox aucun pb. Je n'ai pu vérifier l'erreur que sus ie8.
Une question qui va dans la continuité : comment sont traitées de telles URLs virtuelles par les robots de référencement type google? Apparemment le robot google ne reconnait pas la page (test avec l'outil de soumission d'URL dans google webmaster)...
Modifié par trikiwoo (11 Feb 2010 - 15:28)