Utilisation du DNS pour rediriger vers une autre URL avec un chemin [fermé]


120

J'essaye de rediriger un domaine vers un autre via DNS.

Je sais qu'utiliser IN CNAME c'est possible.

www.proof.com IN CNAME www.proof-two.com.

Ce dont j'ai besoin est une redirection avec un chemin. Quand quelqu'un tape www.proof.com, cela devrait l'amener àwww.proof-two.com/path/index.htm

Je sais que cela peut être fait à l'aide des installations du serveur Web, mais j'ai besoin d'une redirection DNS.

Est-ce possible?


Si vous utilisez le domaine google, vous pouvez utiliser son "Transfert de domaine" dans le menu de gauche -> Site Web.
John_J

Réponses:


136

Non, ce que vous demandez n'est pas possible. DNS est un système de résolution de noms et ne sait rien sur HTTP.


93

si vous utilisez AWS, une redirection comme

mail.foo.com --> mail.google.com/a/foo.com

peut être configuré comme suit:

  1. en s3, créez un bucket vide "mail.foo.com"
  2. sous Propriétés -> Hébergement de site Web statique, définissez "rediriger toutes les demandes vers: mail.google.com/a/foo.com"
  3. dans route53, créez un enregistrement A "mail.foo.com"
  4. activer "alias" et définir la cible d'alias sur le bucket "mail.foo.com"

pas une solution DNS pure, mais ça marche;)

Mais attention, la redirection ignore tous les paramètres d'URL, par exemple: ...? Param1 = valeur1 & param2 = valeur2


3
C'est une excellente et très utile réponse à toute personne utilisant AWS. Je vous remercie! Solution de contournement douce
Ken

6
Important à noter: le bucket doit être nommé pour correspondre au nom d'hôte redirigé vers celui-ci. Voir serverfault.com/a/584714/105720
Jordan Feldstein

1
Cela fonctionne comme une redirection vers un répertoire, mais pas vers une page spécifique. Si vous redirigez toutes les demandes vers "www.example.com/foo/bar/baz.html" AWS ajoutera "utilement" un "/" à l'URL, le transformant en "www.example.com/foo/bar/baz .html / "et renvoyant une erreur 404.
Earl Ruby

34

Je me rends compte que c'est un vieux fil mais FWIW, au cas où quelqu'un d'autre cherche un moyen de le faire.

Bien que dns ne comprenne pas la partie chemin de l'url, il comprendra les sous-domaines, donc au lieu de:

www.proof.com DANS CNAME www.proof-two.com/path/index.htm

Vous pouvez utiliser:

www.proof.com DANS CNAME proof.proof-two.com

puis accédez à l'endroit où vous hébergez proof-two.com et réglez-le sur www.proof-two.com/path/index.htm.

~ il y a toujours plus d'une façon d'écorcher un chat


2
Cela ressemble à une construction inutile, au lieu de faire pointer proof.proof-two.com vers www.proof-two.com/path/index.htm, vous pourriez tout aussi bien faire pointer www.roof.com là-bas, pas besoin de enregistrements DNS supplémentaires.
Michiel

12
@Michiel Cela ressemble à une construction inutile si vous avez un accès facile aux proof-two.comserveurs Web. Parfois, les grandes entreprises (et la bureaucratie) rendent tout beaucoup plus compliqué qu'il ne pourrait l'être.
cregox

1
"puis allez à l'endroit où vous hébergez proof-two.com et réglez-le pour pointer proof.proof-two.com vers www.proof-two.com/path/index.htm" Comment faire cela?
user2060451

17

J'ai un projet personnel qui pourrait vous aider à résoudre ce problème. C'est une solution de redirection open source qui vous permet de rediriger votre domaine en modifiant simplement vos paramètres DNS. Lien du projet: https://redirect.center/ .

Pour rediriger www.proof.com vers www.proof-two.com en conservant les paramètres d'URL, il suffit de définir votre entrée DNS www sur proof.com:

www.proof.com IN CNAME www.proof-two.com.opts-uri.redirect.center.


La question concernait la redirection vers une URL de chemin complet, pas seulement vers un domaine.
Tony Chiboucas

2
Ce n'est toujours pas un chemin complet
Tony Chiboucas

2
Un chemin peut être pris en charge via le ".opts-slash" du service. fonction. Redirigez jobs.my-domain.com vers mon-domaine.com/jobs Configurez votre zone DNS comme suit: Enregistrement d'hôte: jobs Type: CNAME Vers: www.my-domain.com.opts-slash.jobs.redirect.center
David Turner

1
C'est vraiment cool et simple si votre registraire ne fournit pas de redirection - génial!
Luca Steeb

1
C'est parfait! J'ai supposé que quelque chose comme ça existait mais je n'ai pas pu le trouver (ils doivent travailler sur leur référencement, je suppose).
Matt Dodge le

11

C'est vraiment facile avec redirect.center

Si vous souhaitez créer un CNAME en tant que:

www.proof.com DANS CNAME www.proof-two.com/path/index.htm

en utilisant redirect.center votre look CNAME en mode canonique comme:

www.proof.com IN CNAME www.proof-two.com.opts-slash.path.opts-slash.index.htm.redirect.center.

Maintenant, si vous souhaitez rediriger vers le site Web https, vous pouvez ajouter cette option:

www.proof.com IN CNAME www.proof-two.com.opts-slash.path.opts-slash.index.htm.opts-https.redirect.center.

Vous pouvez maintenant créer un CNAME avec le mode canonique avec barre oblique dans votre page de destin.


J'ai essayé ceci, mais cela ne fonctionne pas. Il ne fait que rediriger les utilisateurs vers le site de redirect.center.
Renan

Pouvez-vous copier votre registre CNAME? Pouvez-vous également copier votre site redirigé?
Alvaro Aguilar

1
@Renan Assurez-vous que le domaine source est présent dans le DNS et peut être recherché par le serveur redirect.center; la navigation vers target-domain.com.redirect.center dans le navigateur ne fonctionnera pas. Voir l'explication: github.com/udleinati/redirect.center/issues/…
sébaste

11

Éditer

Il semble que ce soit mon fournisseur (OVH) qui autorise ce genre de redirection au sein de son infrastructure.

Voir: https://docs.ovh.com/gb/en/domains/redirect-domain-name/

Je garde la réponse ci-dessous pour des raisons d'archivage, mais elle ne fournit aucune information significative.

Réponse originale

Je l'ai fait en utilisant un enregistrement TXT.

Pour rediriger foo.bar.comvers foo2.bar.com/path, ajoutez simplement foo IN TXT "1|foo2.bar.com/path"votre bar.comzone DNS.

Il conserve également les chemins et les paramètres d'URL. Donc, si vous essayez d'accéder foo.bar.com/hello?foo=bar, vous serez redirigé vers foo2.bar.com/path/hello?foo=bar.


6
Pourriez-vous préciser cela un peu plus? Avez-vous des références sur l'utilisation des enregistrements TXT?
Josiah

Est-ce que cela conservera également les paramètres d'URL?
andreas

1
Après enquête, il semble qu'OVH le fasse pour moi. Voir: ovh.com/fr/g1339.redirection-nom-de-domaine (fr). Je mettrai à jour ma réponse.
Gabriel

10

Pour répondre à la question initiale, non, ce que vous voulez n'est pas possible en utilisant uniquement DNS (comme tout le monde l'a dit). En plus de tout ce qui est déjà mentionné, une autre option consiste à utiliser un service de redirection d'URL. Ces types de services peuvent vous permettre de configurer de nombreux types de redirections d'URL en fonction de vos besoins. Par exemple:

  1. Transférer un sommet de domaine vers un www. sous-domaine ou vice versa
  2. Transférer une collection de noms de domaine vers une seule destination (utile pour transférer les fautes d'orthographe de domaine, les anciens noms de société, etc.)
  3. Transférer des noms de domaine spécifiques vers des pages profondément liées (comme ce que veut l'OP)

Un service qui fait cela est EasyRedir . Divulgation complète: j'ai développé EasyRedir. Cependant, il existe certainement d'autres options, alors je vous encourage à jeter un coup d'œil.


5

DNS ne redirigera pas la partie du chemin d'une URL, ce ne sera donc pas possible.

Ajouter

www.proof.com IN CNAME www.proof-two.com

dirigera l'accès à www.proof.com vers www.proof-two.com, où vous devrez utiliser la configuration du serveur Web pour diriger les utilisateurs vers la page appropriée.


4

Ma solution à ce problème était assez simple et directe. Tout ce dont vous avez besoin est un serveur IIS fonctionnant à l'intérieur du domaine.

Configurez CNAME dans DNS pour qu'il pointe vers le serveur IIS, en utilisant les noms d'hôte dans IIS pour résoudre plusieurs sites sur un seul serveur IIS. J'utilise le même serveur IIS pour créer quelques sous-domaines vers des sites externes.

Ensuite, dans la configuration de la configuration IIS, la redirection de ce site pour accéder à votre site / chemin hors site, dans mon cas, c'était notre catalogue hébergé que je voulais consulter catalog.ourdomain.com. À partir de là, tous les réglages sont effectués dans IIS. Assurez-vous d'activer l'authentification anonyme afin que le trafic ne soit pas bloqué.


3

Je suppose que vous avez ce scénario: vous avez un serveur Web unique hébergeant divers sites Web, chacun étant censé être présenté par un domaine séparé:

ainsi, la page1.html doit être servie par www.customer1.com et ainsi de suite.

  1. créez un sous-domaine dans le serveur dns example.com (votre serveur Web):

    customer1.example.com

  2. dans les paramètres de votre serveur virtuel apache, mappez le sous-domaine vers le répertoire contenant le site Web de votre client n ° 1, comme ceci:

<VirtualHost *:80> SetEnv PAGE_ID "customer1" ServerName customer1.example.com ServerAlias www.customer1.com DocumentRoot /your/local/path/webserver/customer1 </VirtualHost> veuillez noter la valeur de "ServerAlias", c'est important pour la prochaine étape-

À ce stade, vous devriez pouvoir accéder au site Web de votre client1 en accédant à:

customer1.example.com

  1. Dans les paramètres DNS de customer1.com, vous devez créer un enregistrement CNAME:

    CNAME = www LOCATION = client1.example.com

Vous êtes maintenant autorisé à utiliser: www.customer1.com.


3

Un travail connexe a conclu tout ce qui suit:

Problème:

http://a.com/p1/p2.html devrait aller à http://B.com/p1/p2.html
aujourd'hui, mais plus tard, une fois configuré manuellement / automatiquement, le même
http://a.com/p1 /p2.html doit aller à http://C.com/p1/p2.html

Réponses:

DNS - convertit le nom en adresse IP

Bien qu'il puisse faire beaucoup de redirections, la sortie est toujours une adresse IP DNS ne comprend pas le chemin ou la partie protocole de l'URL, ne comprend que la partie domaine, c'est-à-dire que a.com uniquement est converti en adresse IP, donc lorsque vous cliquez sur http: //a.com/p1/p2.html peut être converti en http://152.132.121.11/p1/p2.html si vous configurez mal dans DNS, alors vous obtiendrez 152.132.121.11 (et non http: //152.132. 121.11 / p1 / p2.html ), vous obtiendrez donc une erreur de 400 s (400, 403, etc.)

Redirection - ceci est http://a.com/p1/p2.html peut être converti en http://b.com/p1/p2.html

Toutes les méthodes comme GET, POST peuvent fonctionner, avec si des en-têtes et un corps, mais qu'un serveur Web est impliqué, cela pourrait être un point de défaillance, donc l'évolutivité et la disponibilité seront essentielles

Si vous êtes sur AWS , Route 53 -> API Gateway est possible via des domaines personnalisés, en interne en utilisant le Cloud front

C'est possible avec Amazon Certification Manager, les domaines personnalisés AWS Gateway et Route53, notez la restriction us-east-1 sur ACM

J'espère que ça aide quelqu'un


2

Alors que presque tout le monde l'a déjà dit, il est impossible d'utiliser uniquement DNS. Pour contourner ce problème, je suggérerais d'essayer NGINX ( http://nginx.org/en/docs/http/request_processing.html ).

TL; DR - Dans NGINX, vous pouvez créer plusieurs serveurs virtuels qui peuvent rediriger votre demande en fonction du nom du serveur.

Ex. http://first.my-server.com redirige vers le lieu A et http://second.my-server.com redirige vers le lieu B, tandis que les deux partagent un seul serveur physique.


0

Vous pouvez utiliser le mod de réécriture htaccess, réécrire dans le sous-dossier si l'utilisateur demande un domaine spécifique et non l'autre.


-1

Bien sûr, il est possible de rediriger, avec l'astuce suivante:

Créez une nouvelle zone principale standard Nommez-la comme l'URL fictive vers laquelle vous souhaitez rediriger Assurez-vous que ce nom fictif est différent de tout nom DNS AD Créez un enregistrement avec les entrées suivantes:

blanc ....................... A ......................... ... ip-addr-2

www ......................... A ....................... ..... ip-addr-2

Ce que nous avons ici, c'est la redirection, essentiellement. Une URL valide sera résolue en fonction de la zone DNS principale DNS existante. Une URL fictive sera redirigée vers ip-addr-2. Ce qui est important, c'est que le nom de cette entrée soit vide, il passera donc à l'entrée suivante de l'enregistrement et redirigera vers ip-addr-2


-4

Tout le monde l'a déjà dit, et je veux juste vous donner une autre option pour un service qui peut vous aider. www.301redirect.it est un service gratuit qui peut rediriger votre domaine (avec un caractère générique) vers n'importe quelle URL de destination.

Je souhaite également ajouter une divulgation: je suis le développeur derrière ce service et il existe d'autres options.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.