8795 sujets

Développement web côté serveur, CMS

Bonjour

topo :
Je possede 2 noms de domaines, actuellement relié au même site, même hebergeur.

www.monsite1.com = /www
www.monsite2.com = /www (DNS Externe, redirigé)

Je voudrait tester le referer pour avoir cette configuration
www.monsite1.com = /www
www.monsite2.com = /www/site2

<?php $provenance=$_SERVER['HTTP_REFERER'];
      echo $provenance;
 ?>


le problème est que lorsque je tappe www.monsite2.com, la variable provenance est vide, mais si je clic sur un lien présent sur le site, alors la variable prend la valeur www.monsite2.com.

Bref je nage dans le potage ...
Modifié par gcooo (21 Sep 2007 - 11:40)
Bonjour

C'est parce que le referer n'est pas modifié si la réponse du serveur est 301/307 (redirigé) ce qui est probablement le cas ici.
Alors que dans le cas d'un lien tu proviens d'une page servie normalement et qui a donc mit à jour le referer.

De toute manière le referer étant fourni au bon vouloir du client ce n'est pas une valeur fiable (près de 30% des visiteurs ne le renseignent pas sur mon site par exemple) et donc il est conseillé de ne pas l'utiliser.
Le plus simple et fiable serait de faire directement la redirection sur le bon dossier. Techniquement c'est possible, par contre en pratique ça dépend de ce que le provider en question te laisse comme choix.

Sinon si tu as la possibilité de déposer des fichiers sur le site en question un simple fichier php peut le faire:
<?php
header('Location:  www.monsite1.com/www/site2');
 
?>

Et à condition de le définire comme fichier d'erreur 404 (voir "ErrorDocument" dans les .htaccess) il redirigera toute les requêtes.
Merci à tous pour vos réponse mais la ca sort de mes compétence.
La seule chose que je sait c'est que l'hebergeur n'authorise pas un nom domaine extérieur à pointer sur un sous répertoire directement via le DNS, donc je cherche une solution de remplacement, mais point de vue compétence dans le domaine ya personne ...
Salut gcooo Smiley cligne ,

je n'ai jamais eu à le faire mais je pense qu'en mettant le code suivant dans un .htaccess à la racine de ton site ça devrait fonctionner :
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^monsite2.com$
RewriteRule ^(.*)    http://www.monsite1.com/site2/$1   [QSA,L,R=301]

A+ Smiley smile
gcooo a écrit :
Merci à tous pour vos réponse mais la ca sort de mes compétence.
La seule chose que je sait c'est que l'hebergeur n'authorise pas un nom domaine extérieur à pointer sur un sous répertoire directement via le DNS, donc je cherche une solution de remplacement, mais point de vue compétence dans le domaine ya personne ...


Salut,

Si l'hébergeur ne l'autorise pas via DNS c'est qu'il y a une raison. Tu as peut-être nullement le droit de faire du sous hébergement, dans ce cas là je te conseille de lire tes conditions d'hébergement avant de faire cela. Histoire que tu sois pas surpris par une fermeture de ton site sans préavis !

A+
Bonjour,

Je ne veux pas trop "hijacker" ce topic, mais comme ça fait quelques mois et que ça semble similaire, je vais y aller XD

Donc lorsque j'ajoute un nom de domaine, mon hébergeur ajoute automatiquement un sous domaine à mon domaine principal.
Ex: Si j'ajoute "laviedebob.com", il ajoute automatiquement "laviedebob.mondomaine.com" , cependant ils pointent tous les deux le même répertoire.

Je veux donc que si j'accède au site par "laviedebob.mondomaine.com", il redirige (permanent) vers "laviedebob.com".
Est-ce la même technique?

Merci!
FoxLeader
Modifié par FoxLeader (11 Dec 2007 - 01:07)
Merci!

Histoire de pouvoir m'en souvenir, si je comprends bien, ça fait que si l'adresse avec laquelle le site est accédé n'est pas www.lavidedebob.com, il redirige vers www.laviedebob.com, grâce au != ?

Du côté de la version d'Apache, je ne croit pas qu'il y ait de problème pour moi Smiley smile
FoxLeader a écrit :
Histoire de pouvoir m'en souvenir, si je comprends bien, ça fait que si l'adresse avec laquelle le site est accédé n'est pas www.lavidedebob.com, il redirige vers www.laviedebob.com, grâce au !=
?

On peut lire ça comme ça:
si l'hôte n'est pas www.lavidedebob.com (rewriteCond), alors (rewriteRule):
-transformer l'url en www.lavidedebob.com
-y coller tout ce qui était après le premier slash (par exemple laviedebob.mondomaine.com/toto.htm -> www.lavidedebob.com/toto.htm)
-forcer une redirection permanente (301).