Existe-t-il un moyen de rediriger un domaine vers un autre via les paramètres DNS en conservant les informations de chemin?

26

Par exemple, mon domaine est example.comet lorsque quelqu'un accède à example.com/sample/page.htm, je veux qu'il redirige vers test.com/sample/page.htm.

Je sais que cela peut probablement se faire facilement en utilisant un .htaccessfichier ou une page 404. Cependant, je recherche une solution qui ne nécessite pas que mon fournisseur DNS héberge des fichiers pour moi.

Je souhaite le faire uniquement avec les paramètres DNS, par exemple:

  • Enregistrements CNAME
  • A records
  • 301 renvoi
  • (tous les autres paramètres DNS me manquent)

Est-ce qu'il y a un moyen de faire ça?

Sensé
la source
Je pense que ce que vous vouliez était plus une configuration générique, mais je ne pense pas qu'elle puisse être implémentée à ce stade sans redirection.
Tim Post
quelqu'un peut-il donner une réponse claire et simple à ce sujet .... :(
@fatty, qu'est-ce que tu ne comprends pas?
John Conde

Réponses:

12

Vous pouvez faire en sorte que example.com/test.com soit résolu sur le même serveur Web (IP) via DNS (CNAME si vous le souhaitez) et cela fonctionnerait.

Si vous cherchez à le faire par chemin, alors non. Le DNS ignore des choses comme l'URL. DNS traduit simplement la partie hôte de l'url (example.com) en adresse IP. Le serveur Web est en charge de déterminer ce que (ou où) l'URL est censée résoudre. Je pense que vous devrez le faire au niveau du serveur Web (http).

Thomas
la source
1
Oui, si vous configurez le CNAME sur example.com, vous n'avez rien à héberger pour example.com. Configurez simplement l'hôte test.com pour qu'il réponde à example.com, puis utilisez mod_rewrite ou URL Rewriting sur test.com pour détecter le nom d'hôte example.com et réécrire sur lui-même. Cela peut être dangereux cependant; mieux vaut qu'example.com ait son propre vhost sur le serveur test.com, avec uniquement des règles de redirection.
JasonBirch
8

Comme cela a été noté, cela ne peut pas être fait entièrement avec DNS. Cependant, si vous avez le DNS pour example.com, référez-vous au même serveur que test.com, il est très simple de configurer Apache pour accomplir ce que vous souhaitez faire. Ajoutez simplement ce qui suit:

<VirtualHost *:80>
  ServerName example.com
  Redirect permanent / http://test.com/
</VirtualHost>

Cela réécrira tout lien entrant vers example.com en un lien pour test.com, en préservant le chemin.

De plus, votre fournisseur DNS n'a pas besoin d'héberger de fichiers pour vous car cela ne dépend que du serveur Web que vous exécutez déjà pour test.com.

Kris
la source
Ou ajoutez simplement des directives ServerAlias ​​au fichier hôte virtuel de test.com.
Michael Clerx
3

Vous ne pouvez pas le faire via DNS seul. Les redirections 301 ne sont pas une chose DNS. C'est un serveur Web.

Ce que vous pouvez faire, c'est pointer vos entrées DNS example.com vers le même serveur que test.com et configurer example.com en tant que domaine d'alias sur test.com.

intlect
la source
3

Voici la .htaccessrègle exacte que j'utilise pour rediriger toutes les demandes de www.mydomain.com vers mydomain.com (car la plus courte est mon URL canonique):

RewriteCond %{HTTP_HOST} ^www\.mydomain\.com$ [NC]
RewriteRule ^(.*)$ http://mydomain.com/$1 [R=301,L]

C'est assez facile à modifier pour rediriger depuis foo.comvers foobar.com, tout en préservant la demande, le client obtient simplement une redirection 301 vers le domaine approprié.

Cependant, vous ne pouvez pas le faire «simplement» avec DNS, comme d'autres l'ont dit, les serveurs DNS résolvent simplement les noms de domaine complets en adresses IP.

Tim Post
la source
J'ai utilisé cela, mais j'ai dû supprimer la dernière barre oblique de votre deuxième ligne ( RewriteRule ^(.*)$ http://mydomain.com$1 [R=301,L]) ou cela ajouterait deux barres obliques à l'URL redirigée. Quelqu'un d'autre a vécu ça?
julien_c