1 votes

Comment procéder à une réorientation sélective ?

J'ai un alias de domaine que je veux rediriger vers un répertoire spécifique sur mon site principal. Comment faire pour que seules les personnes visitant l'alias "fakesite.com" soient redirigées vers "mainite.com/fake" au lieu que tout le monde soit redirigé vers ce dernier ?

1voto

stillstanding Points 10346

Si vous utilisez Apache, configurez fakesite.com en tant qu'hôte virtuel et configurez .htaccess sur fakesite.com :

Redirect / http://mainsite.com/fake

1voto

pluma Points 2958

Il n'y a pas vraiment de moyen de faire exactement ceci en HTML pur (comme dans : meta tags ou quoi que ce soit d'autre). Vous pouvez essayer de vérifier les location en JavaScript (vérifiez si l'emplacement est relatif au faux domaine et réécrivez-le, cela redirigera le navigateur), cependant, pour rediriger le client s'il a activé JavaScript.

Cependant vous pouvez facilement le faire si vous avez Apache en utilisant mod_rewrite .

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(.*\.)?fakesite\.com$ [NC]
RewriteRule ^/(.*)$ http://www.mainsite.com/fake/$1 [L,R=301]

Vous pouvez le mettre dans votre fichier de définition de serveur virtuel (répertoire sites-*). Bien sûr, cela ne fonctionnera que si le domaine se résout actuellement à l'IP sur laquelle tourne le serveur virtuel.

Vous pouvez également personnaliser davantage cette règle (il existe plusieurs bons tutoriels sur la manière d'écrire des règles de réécriture), par exemple pour conserver la fausse URL dans le navigateur plutôt que d'envoyer un message de type 301 rediriger le code avec le "nouvel" emplacement.

Si vous avez PHP disponible sur le serveur du faux site, vous pouvez simplement réécrire toutes les requêtes entrantes vers un seul script sur ce script qui envoie l'en-tête suivant au client :

<?php header('Location: http://www.newsite.com/fake'.$_SERVER['REQUEST_URI']); ?>

Sinon (comme l'a fait remarquer Pekka), un méta-rafraîchissement en HTML est bien sûr un dernier recours. Rediriger vers la nouvelle racine plutôt que vers la page demandée sur le nouveau serveur n'est pas une bonne chose et aura des conséquences néfastes sur le nombre de visiteurs (des visiteurs désorientés sont des visiteurs mécontents) et sur le classement de votre site dans Google.

Si vous parlez de aliasing Plutôt que de rediriger (c.-à-d. faire en sorte que le contenu du répertoire du site principal soit servi aux utilisateurs qui accèdent au faux site), vous pouvez simplement créer un serveur virtuel pour le faux domaine (les mêmes conditions s'appliquent qu'avec l'exemple de mod_rewrite) et définir le document Root sur un répertoire dans le document Root de l'autre domaine. Cela ne fonctionnera évidemment pas si les deux domaines se trouvent sur des serveurs différents.

Si vous ne possédez pas le site principal ou si vous n'y avez pas accès, vous pouvez probablement créer un script (par exemple, PHP) pour définir la source d'un fichier HTML iframe à l'URL réelle et afficher une page contenant cette iframe ; ou pour une copie plus propre : lire le contenu demandé au serveur réel dans le script et afficher ce contenu (vous devrez cependant corriger toutes les URL dans le HTML chargé si vous voulez que l'utilisateur reste sur le faux site).

N'oubliez pas que ce type de "proxy" peut constituer une violation des conditions d'utilisation de l'autre site (ou qu'il peut tout simplement interdire l'IP de votre serveur).

0voto

Pekka 웃 Points 249607

La réécriture de l'URL est toujours la meilleure option lorsqu'elle est disponible, mais je ne vois pas pourquoi une méta redirection, placée sur l'index.html de fakesite.com, ne fonctionnerait pas :

<html>
<head>
<title>Add title here</title>
<meta http-equiv="refresh" content="0;url=http://www.mainsite.com/fake">
</head>
<body>
some content
</body>
</html>

La beauté de cette méthode peut être contestée (assurez-vous également d'équiper la page d'un message de redirection et d'un lien vers mainsite.com/fake à cliquer manuellement), mais elle devrait néanmoins fonctionner.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X