[Résolu] Redirection selon disponibilité du site

WRInaute accro
Bonsoir,

J'ai un site chez Free, parfos inaccessible. Du coup, je perd des visiteurs. Quand le site est inaccessible, le .htaccess fonctionne tout de même.
Donc j'aimerais faire une redirection en fonction de la disponibilité du site :

- site ok, pas de redirection
- site pas ok, redirection vers un autre site

Comment puis-je faire ça ?
 
WRInaute accro
Il y a beaucoup de raisons possibles pour qu'un site soit inaccessible, mais la plus courante, c'est que le serveur est down et dans ce cas c'est le DNS secondaire qui devrait prendre le relais ...
A ceci près que la plupart des sites ont leurs deux DNS chez le même hébergeur et que quand l'un est hs, les deux le sont ...
Plus les problèmes de duplicate content entre le site habituel et le site de secours ... sac de noeuds.
 
WRInaute accro
Deux précisions s'imposent :

- je suis chez Free donc les DNS, je ne pense pas pouvoir en faire quoi que c soit
- le site de secours n'est pas un clone mais un autre site, d'une thématique proche mais tout de même différente
 
WRInaute discret
Quand le site est inaccessible, le .htaccess fonctionne tout de même.
Tu en es sur ?

Est-ce qu'une page s'affiche pour te dire que le site est indisponible ? Est-ce que ce n'est pas un problème avec la base de donnée ?
 
WRInaute accro
gomoz a dit:
Quand le site est inaccessible, le .htaccess fonctionne tout de même.
Tu en es sur ?

Est-ce qu'une page s'affiche pour te dire que le site est indisponible ? Est-ce que ce n'est pas un problème avec la base de donnée ?

Oui, le .htaccess fonctionne, j'ai testé hier alors que le site était out.

Rien ne s'affiche, c'est possible qu'il s'agisse de pb de base de données. Mais au final ça ne change rien, on ne peut consulter le site.
 
WRInaute passionné
Onthisplanet a dit:
Oui, le .htaccess fonctionne, j'ai testé hier alors que le site était out.

Rien ne s'affiche, c'est possible qu'il s'agisse de pb de base de données. Mais au final ça ne change rien, on ne peut consulter le site.

Qu'est ce que tu as dans tes en-têtes HTTP quand ton site est out ?
Quel code réponse ?
 
WRInaute accro
La seule chose que j'ai, c'est une page toute blanche.
Mais je n'ai pas regardé s'il y a un code derrière.
 
WRInaute passionné
Onthisplanet a dit:
La seule chose que j'ai, c'est une page toute blanche.
Mais je n'ai pas regardé s'il y a un code derrière.

Avec Firefox tu peux :
- Barre Web Developper -> Information -> View Response Headers
- Le plugin LiveHeader

Si c'est ton serveur web qui en carafe, je ne pense pas qu'il y ait une solution.
Les techniques classiques passent par du Round-Robin DNS quiç ne sont pas simple à mettre en place.

Si c'est la base qui est en carrafe, alors oui ce serait possible que ton scrip php détecte l'erreur de connexion à la DB et fasse un redirect.

Cela t'obligerait à avoir un 2° hébergement avec un DB.

A avoir deux hébergement, pourquoi ne pas simplement quitter Free.
Free c'est bien pour les sites perso, mais pas plus.
 
WRInaute accro
spidetra a dit:
Avec Firefox tu peux :
- Barre Web Developper -> Information -> View Response Headers
- Le plugin LiveHeader

Si c'est ton serveur web qui en carafe, je ne pense pas qu'il y ait une solution.
Les techniques classiques passent par du Round-Robin DNS quiç ne sont pas simple à mettre en place.

Si c'est la base qui est en carrafe, alors oui ce serait possible que ton scrip php détecte l'erreur de connexion à la DB et fasse un redirect.

Cela t'obligerait à avoir un 2° hébergement avec un DB.

A avoir deux hébergement, pourquoi ne pas simplement quitter Free.
Free c'est bien pour les sites perso, mais pas plus.

Merci pour ces infos.
Comme le .htaccess fonctionne, ne peut-on pas en déduire que seule la abse est en rade ?

C'est plus simple de demander un script de faire le test plutôt qu'au .htaccess ?

Quant à free, je connais bien ses limites, mais on fait ce qu'on peut... (J'ai déjà deux NDD, deux hébergements et je ne suis qu'un simple amateur !).
 
WRInaute discret
Onthisplanet a dit:
- le site de secours n'est pas un clone mais un autre site, d'une thématique proche mais tout de même différente
C'est donc pas un problème. Chez free cela ne m'étonnerai pas que ce soit leur base de données (même chez des clients pro avec online les bases plantes régulièrement).

Essaye de vérifier d'où vient le problème :
1/ soit tu pourra le corriger en recodant différemment
2/ soit tu pourra mettre en place la solution de secours que tu propose.
 
WRInaute accro
gomoz a dit:
Essaye de vérifier d'où vient le problème :
1/ soit tu pourra le corriger en recodant différemment
2/ soit tu pourra mettre en place la solution de secours que tu propose.

J'en saurai plus au prochain plantage.
Ca ne tarde jamais trop...
 
WRInaute passionné
Onthisplanet a dit:
Merci pour ces infos.
Comme le .htaccess fonctionne, ne peut-on pas en déduire que seule la abse est en rade ?

Comment fait tu pour savoir que ton .htaccess fonctionne ?

Onthisplanet a dit:
C'est plus simple de demander un script de faire le test plutôt qu'au .htaccess ?
Tu peux gérer le code d'erreur de connexion à ta base dans ton script php.
Si la connexion échoue tu fait un redirect :
302 : Moved Temporarly

Onthisplanet a dit:
Quant à free, je connais bien ses limites, mais on fait ce qu'on peut... (J'ai déjà deux NDD, deux hébergements et je ne suis qu'un simple amateur !).

C'était dans l'hypothèse où tu aurais été obligé de prendre un nouvel hébergement pour le clone. Ce n'est pas ton cas. Free c'est très bien pour les simples amateur ;)
 
WRInaute accro
spidetra a dit:
Comment fait tu pour savoir que ton .htaccess fonctionne ?

J'ai testé une redirection et ça a fonctionné.

spidetra a dit:
Tu peux gérer le code d'erreur de connexion à ta base dans ton script php.
Si la connexion échoue tu fait un redirect :
302 : Moved Temporarly

Heu... comment on fait ?
Tu as un bout de code à me montrer ?
 
WRInaute passionné
Onthisplanet a dit:
Heu... comment on fait ?
Tu as un bout de code à me montrer ?

ça doit faire un an / un an et demi que j'ai plus coder en Php. Donc juste un exemple, et fait toi confirmer sur le forum :

bout de code du man php :
Code:
<?php
$link = mysql_connect("localhost", "mysql_user", "mysql_password")
   or die("Impossible de se connecter : " . mysql_error());
echo 'Connexion réussie';
...
?>

tu vas remplacer le die, par un redirect :
Code:
<?php
$link = mysql_connect("localhost", "mysql_user", "mysql_password")
   or header("Location: http://www.example.com");;
echo 'Connexion réussie';
...
?>

Je suis plus sur de la syntace header, mais ça doit ressembler à ça
 
WRInaute accro
spidetra a dit:
ça doit faire un an / un an et demi que j'ai plus coder en Php. Donc juste un exemple, et fait toi confirmer sur le forum :

bout de code du man php :
Code:
<?php
$link = mysql_connect("localhost", "mysql_user", "mysql_password")
   or die("Impossible de se connecter : " . mysql_error());
echo 'Connexion réussie';
...
?>

tu vas remplacer le die, par un redirect :
Code:
<?php
$link = mysql_connect("localhost", "mysql_user", "mysql_password")
   or header("Location: http://www.example.com");;
echo 'Connexion réussie';
...
?>

Je suis plus sur de la syntace header, mais ça doit ressembler à ça

Je viens de mettre ça en place.
Actuellement, le serveur est ok et ça enchaine bien sur le site d'origine. Je verrais plus tard si ça fonctionne bien dans l'autre cas.

Encore merci !
 
WRInaute passionné
Onthisplanet a dit:
Je viens de mettre ça en place.
Actuellement, le serveur est ok et ça enchaine bien sur le site d'origine. Je verrais plus tard si ça fonctionne bien dans l'autre cas.

Encore merci !

Teste avant d'avoir le pb.
Change le login ou le mot de passe de ta cnx, cela va provoquer une erreur.
Tu pourras contrôler si la solution est satisfaisante ou non.
 
WRInaute accro
spidetra a dit:
Teste avant d'avoir le pb.
Change le login ou le mot de passe de ta cnx, cela va provoquer une erreur.
Tu pourras contrôler si la solution est satisfaisante ou non.

Bien vu !
Il y avait une erreur (chez moi, pas dans ton code) et c'est corrigé.
Merci
 
WRInaute occasionnel
j'aurais dis la même chose pour le sql,

mais le gros probleme c'est si tu n'a rien du tout qui s'affiche ca veut dire pas de message d'erreur sql donc... c'est le serveur qui est bien indisponible donc selon moi tu ne sais rien faire...
 
WRInaute accro
i-liquid a dit:
j'aurais dis la même chose pour le sql,

mais le gros probleme c'est si tu n'a rien du tout qui s'affiche ca veut dire pas de message d'erreur sql donc... c'est le serveur qui est bien indisponible donc selon moi tu ne sais rien faire...

Si, en réalité, quelque chose s'affichait : le warning de mon script (dont je ne suis pas l'auteur) me disant que la base n'est pas accessible.
Donc la méthode est la bonne, et comme la base vient momentanement d'être indispo, j'ai pu testé en réel l'efficacité de la chose.

I'm happy.
 
Discussions similaires
Haut