web-dev-qa-db-fra.com

Exiger que l'alias de domaine soit affiché dans la barre d'adresse du navigateur

Similaire à la question publiée ici (mais sans lien avec les sous-répertoires): . Htaccess redirige l'alias du nom de domaine vers le domaine principal mais doit apparaître comme étant le domaine de l'alias

J'essaie de diriger le trafic d'un domaine d'alias que j'ai sur mon site qui se trouve sur le même serveur, tout en maintenant le domaine d'alias dans la barre d'adresse du navigateur.

Ceci est mon contenu htaccess original qui redirige correctement l'utilisateur, mais xyz.com apparaît dans le navigateur, ce que je ne souhaite pas.

rewritecond %{HTTP_Host} ^(www\.)?abc\.com$ [NC]
rewriterule ^ http://xyz.com/?foo [R=301,QSA,L]

C’est ma tentative non seulement d’amener les visiteurs d’abc.com sur xyz.com, mais également de faire apparaître abc.com dans le navigateur. Cela ne charge même pas le site. Des idées sur un correctif?

rewritecond %{HTTP_Host} ^(www\.)?abc\.com$
RewriteRule ^$ /index.html [L]
3
John Montague

Je suppose que chaque domaine sur lequel vous vous interrogez se voit attribuer des dossiers distincts sur le même serveur.

Je suppose que la racine du document pour abc.com se trouve dans le dossier/abc/public_html et que la racine du document pour xyz.com se trouve dans le dossier/xyz/public_html.

Parce que vous ne voulez pas que xyz.com apparaisse et que vous voulez des données, vous avez deux options.

Si vous utilisez un serveur Linux, vous pouvez transformer tous les fichiers (sauf .htaccess) du dossier/abc/public_html en liens symboliques pointant vers les fichiers du dossier/xyz/public_html.

Un moyen plus simple est de copier les fichiers afin que/abc/public_html ait exactement le même contenu que/xyz/public_html, mais cette option nécessite plus d’espace disque.

Mettez à jour le fichier .htaccess afin que toutes les demandes adressées à xyz.com soient transférées à abc.com afin d'éviter tout problème de contenu en double.

1
Mike

Chaque fois que vous redirigez , vous indiquez au navigateur de modifier l'URL telle qu'elle apparaît à l'utilisateur. Vous pouvez adopter trois approches pour résoudre ce problème.

  1. Servir les deux domaines sur le même dossier. Cela signifie que les deux domaines ont le même contenu (en double). Cette solution fonctionne lorsque les deux domaines sont desservis par le même serveur. Vous devez simplement configurer les hôtes virtuels pour qu'ils aient le même répertoire DocumentRoot.
  2. mod_proxy en mode de proxy inverse permet à votre domaine de rediffuser le contenu d'un autre domaine. Lorsqu'il reçoit une demande de page, il la récupère de l'autre domaine et la sert à nouveau. Cela fonctionnera même lorsque les deux domaines sont servis sur des serveurs différents. Cela créera également un contenu en double et sera plus lent que de servir le contenu directement.
  3. Redirections encadrées. Une redirection encadrée utilise des cadres HTML côté client pour afficher le contenu d'un autre domaine.

    <frameset rows="100%,*" border="0">
    <frame src="http://othersite.example.com/" noresize frameborder="0">
    </frameset>
    

    Cette solution n'est pas géniale car:

    • Cela ne fonctionne pas bien pour le référencement - Google dirige toujours les utilisateurs vers l'autre site
    • L'URL ne change pas lorsque les utilisateurs naviguent sur le site. Il est difficile pour les utilisateurs de créer un signet ou de partager du contenu.
0
Stephen Ostermiller