Redirection selon l'adresse url tapée

Nouveau WRInaute
Bonjour à tous :) ,

J'ai actuellement 2 noms de domaine enregistrés sur le même compte ftp, ce qui veux dire que j'arrive sur le même site en tapant l'un ou l'autre domaine.
L'affaire, c'est que j'aimerais que l'un de mes deux domaines affiche le site en francais et l'autre affiche le site en anglais.
J'ai pensé faire une redirection selon le langage du visiteur mais pour qelques raisons j'aimerais mieux faire une redirection selon le nom de domaine entré. EX : si le visiteur tape

www.mon_site_fr.com ---> aucune redirection ---> www.mon_site_fr.com/
www.mon_site_en.com ---> redirection vers ---> www.mon_site_fr.com/en/

J'attent vos réponses en espérant que cette manipulation soit possible.
Merci
 
WRInaute accro
C'est le genre de regle qui passe pas sur tous les serveurs

Code:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.mon_site_en.com [NC]
RewriteRule ^.*   www.mon_site_fr.com/en/ [L,R=301]

il y a la meme chose en php avec $_SERVER[HTTP_HOST]
 
Nouveau WRInaute
Merci beaucoup KOogar pour ta réponse, pour l'instant ça ne fonctionne pas mais je continu à essayer toutes sortes de choses, ensuite je m'attaque a la redirection php. Je suis avec 1&1..

Merci encore et je te redonne des nouvelles.
pressorus
 
Nouveau WRInaute
Éviter le duplicate content

Bon, vu que je code de KOogar ci-haut ne fonctionne pas sur mon serveur, il a fallu que je me lance dans le PHP avec la variable $_SERVER['HTTP_HOST']. Je vous rappelle que j'ai un hébergement avec 2 adresses et que je voulais simplement faire en sorte que quand le visiteur tape :
- www.mon_site_en.com ---> il soit redirigé vers ---> www.mon_site_fr.com/en/ "Mission accomplie :)"
- Et je rajoute aujourd'hui une redirection vers le sous-domaine "www" et je le test sur un fichier un peut plus loin dans l'arborescense -http://www.mon_site_fr.com/test/allo/index.php (c'est ça qui me pose problème) (j'ai décidé de le faire en PHP car, sauf erreur, je me suis rendu compte que l'on ne pouvait pas vraiment combiné une redirection .htaccess (www) à une redirection PHP.)

Voici les codes que j'ai écrit après quelques lectures sur le net :
Pour la page d'accueil :
Code:
<?php

$domain = $_SERVER[HTTP_HOST];

if ( $domain == 'www.mon_site_en.com' )
{
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.mon_site_fr.com/en");
exit;
}

elseif ( $domain == 'mon_site_en.com' )
{
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.mon_site_fr.com/en");
exit;
}

elseif ( $domain == 'mon_site_fr.com' )
{
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.mon_site_fr.com");
exit;
}
?>


Pour une page X en fr :

Code:
<?php

$domain = $_SERVER[HTTP_HOST];
$chemin = "/test/allo/index.php";

if ( $domain == 'mon_site_fr.com' )
{
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.".$domain.$chemin);
exit;
}
elseif ( $domain == 'www.mon_site_fr.com' )
{
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://".$domain.$chemin);
exit;
}
?>

Selon moi, il dois y avoir des erreurs dans le code pparce que, voici les symptomes :
- Pour la page d'accueil, tout fonctionne très bien :)
- Si je fait un lien de ma page d'accueil vers ma page plus loin, (l'adresse de mon lien est "-http://mon_site_fr.com/test/allo" donc une redirection serait suposé suivre vers -http://www.mon_site_fr.com/test/allo/index.php") j'ai une erreur 404 (si j'actualise, la page s'affiche sans que la redirection se fasse)
- si je tape "-http://mon_site_fr.com/test/allo/index.php", j'ai une page blanche... ??

Quoi qu'il en soit la redirection ne ce fais pas (cependant, elle fonctionne quand j'actualise la page) Dois-je simplement mettre une balise "meta-refresh" ? Est-mauvais pour le référencement ? Je ne comprend vraiment pas, j'ai fait des echo des variables et ils affichent la bonne chose.
C'est pourtant pas si compliqué ?

Merci,
Pressorus
 
WRInaute accro
ca marche chez 1&1 ca :
par contre il me semble qu'il faut le Rewritebase

Code:
RewriteEngine on
# a voir pour la ligne ci dessous
Rewritebase /
RewriteCond %{HTTP_HOST} ^www.mon_site_en.com [NC]
RewriteRule ^(.*)$   www.mon_site_fr.com/en/ [L,R=301]


en php, parse tes variables et fait attention aux conditions

Code:
<?php
$domain = $_SERVER["HTTP_HOST"];
// si / => j'enleve le / de fin de chaine
$domain = str_replace("/","",$domain);
if ( $domain == "www.mon_site_en.com" ) {
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.mon_site_fr.com/en");
exit; }
if ( $domain == "mon_site_en.com" ) {
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.mon_site_fr.com/en");
exit; }
if ( $domain == "mon_site_fr.com" ) {
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.mon_site_fr.com");
exit; }
?>
 
Nouveau WRInaute
Boujour KOogar, merci encore pour ta réponse.. :)
À moins que j'y sois contraint, j'aimerais mieux travailler avec le .htaccess, parce que si je rajoute des pages, je ne serai pas obligé de rajouter un code php sur chaque page que je rajoute sur mon site.

Pour ce qui est de ton code htaccess, il ne fonctionne pas, la page reste en "ouverture de la page..." elle n'aboutie pas. J'ai aussi essayé "Rewritebase /mon_site_fr.com/" mais ça me redirige vers une double url...
Je n'ose pas appeler le support 1and1, la dernière fois c'est moi qui lui est donné un cours..

Donc, en théorie le code htaccess devrait ressembler à ? :
Code:
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www.mon_site_fr.com$
RewriteRule ^(.*)   http://www.mon_site_fr.com/$1  [QSA,L,R=301]
Rewritebase /
RewriteCond %{HTTP_HOST} ^www.mon_site_en.com [NC]
RewriteRule ^(.*)$   www.mon_site_fr.com/en/ [L,R=301]

** Est-ce que ça vaudrait la peine que j'étudie l'option "recompiler Apache et en ajoutant le module vhost_alias" ??

EDIT : TOUT EST REVENU DANS L'ORDRE POUR PHP, ÇA FONCTIONNE À MERVEILLE !... À CE DEMANDER...Sinon, le code php (sans htaccess) fonctionne très bien sauf la chose principale, quand je tape directement l'url sans le www "mon_site_en.com" ou bien "mon_site_fr.com", l'url devient par exemple "http://mon_site_fr.com/" et une page blanche apparait ! (qui n'est pas mon site) Par contre, si je tape "www.mon_site_fr.com", tout ce passe bien. Toutefois, si je passe par des liens ou par google, tout ce passe bien, la redirection se fait et la page apparait.

Si vous avez une idées de pourquoi le htaccess ne fonctionne pas, je serait heureux de le savoir.

Merci,
Pressorus
 
Discussions similaires
Haut