Usando DNS para redirecionar para outro URL com um caminho [fechado]

120

Estou tentando redirecionar um domínio para outro via DNS.

Eu sei que usando IN CNAME é possível.

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

O que eu preciso é um redirecionamento com um caminho. Quando alguém digita www.proof.com, deve levá-lo awww.proof-two.com/path/index.htm

Eu sei que isso pode ser feito usando as instalações do servidor Web, mas preciso do redirecionamento de DNS.

Isso é possível?

contato contato
fonte
Se estiver usando o domínio do google, você pode usar o "Encaminhamento de domínio" no menu à esquerda -> Site.
John_J

Respostas:

136

Não, o que você pergunta não é possível. DNS é um sistema de resolução de nomes e nada sabe sobre HTTP.

eudoxos
fonte
93

se você usa AWS, um redirecionamento como

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

pode ser configurado da seguinte forma:

  1. em s3, crie um balde vazio "mail.foo.com"
  2. em Propriedades -> Hospedagem de site estático, defina "redirecionar todas as solicitações para: mail.google.com/a/foo.com"
  3. em route53, crie um registro A "mail.foo.com"
  4. habilite "alias" e defina o destino do alias para o intervalo "mail.foo.com"

não é uma solução DNS pura, mas funciona;)

Mas esteja ciente de que o redirecionamento ignora todos os parâmetros de URL, por exemplo: ...? Param1 = valor1 & param2 = valor2

Tlossen
fonte
3
Esta é uma resposta excelente e muito útil para qualquer pessoa que use a AWS. Obrigado! Excelente solução
Ken
6
Importante observar: O intervalo deve ser nomeado para corresponder ao nome do host que está sendo redirecionado para ele. Consulte serverfault.com/a/584714/105720
Jordan Feldstein
1
Isso funciona como um redirecionamento para um diretório, mas não para uma página específica. Se você redirecionar todas as solicitações para "www.example.com/foo/bar/baz.html", o AWS acrescentará "utilmente" um "/" ao URL, transformando-o em "www.example.com/foo/bar/baz .html / "e retornando um erro 404.
Earl Ruby de
34

Sei que este é um tópico antigo, mas FWIW, caso outra pessoa esteja procurando uma maneira de fazer isso.

Embora o dns não compreenda a parte do caminho do url, ele compreenderá os subdomínios, portanto, em vez de:

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

Você pode usar:

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

em seguida, vá para onde quer que você hospede proof-two.com e defina-o para apontar proof.proof-two.com para www.proof-two.com/path/index.htm.

~ sempre há mais de uma maneira de esfolar um gato

outra maneira
fonte
2
Isso soa como uma construção inútil, em vez de fazer proof.proof-two.com apontar para www.proof-two.com/path/index.htm, Você também pode fazer www.roof.com apontar lá, sem necessidade de registros DNS extras.
Michiel
12
@Michiel Parece uma construção inútil se você tiver acesso fácil aos proof-two.comservidores web. Às vezes, as grandes empresas (e a burocracia) tornam tudo muito mais complicado do que poderia ser.
cregox 01 de
1
"então vá para qualquer lugar onde você hospeda proof-two.com e configure-o para apontar proof.proof-two.com para www.proof-two.com/path/index.htm" Como fazer isso?
user2060451
17

Tenho um projeto pessoal que pode ajudá-lo a resolver esse problema. É uma solução de redirecionamento de código aberto que permite redirecionar seu domínio apenas alterando suas configurações de DNS. Link do projeto: https://redirect.center/ .

Para redirecionar www.proof.com para www.proof-two.com mantendo os parâmetros de URL, basta definir sua entrada DNS www em proof.com:

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

Udlei Nati
fonte
A questão era sobre como redirecionar para um URL de caminho completo, não apenas para um domínio.
Tony Chiboucas
2
Esse ainda não é um caminho completo
Tony Chiboucas
2
Um caminho pode ser suportado por meio de ".opts-slash" do serviço. função. Redirect jobs.my-domain.com para my-domain.com/jobs configurar seu fuso DNS da seguinte forma: Anfitrião Record: emprego Tipo: CNAME Para: www.my-domain.com.opts-slash.jobs.redirect.center
David Turner
1
Isso é muito legal e simples se o seu registrador não fornece redirecionamento - incrível!
Luca Steeb
1
Isto é perfeito! Presumi que algo assim existia, mas não consegui encontrar (eles precisam trabalhar em seu SEO, eu acho).
Matt Dodge de
11

Realmente é fácil com redirect.center

Se você deseja criar um CNAME como:

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

usando redirect.center, seu CNAME parece um modo canônico como:

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

Agora, se você deseja redirecionar para um site https, pode adicionar esta opção:

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

Agora você pode criar um CNAME com o modo canônico com barra em sua página de destino.

Alvaro Aguilar
fonte
Tenho tentado fazer isso, mas não funciona. Tudo o que ele faz é redirecionar os usuários para o site do redirect.center.
Renan,
Você pode copiar seu registro CNAME? Você também pode copiar seu site redirecionado?
Alvaro Aguilar
1
@Renan Certifique-se de que o domínio de origem está presente no DNS e pode ser consultado pelo servidor redirect.center; também navegar para target-domain.com.redirect.center no navegador não funcionará. Veja a explicação: github.com/udleinati/redirect.center/issues/…
redfish
11

Editar

Parece que é o meu provedor (OVH) que permite esse tipo de redirecionamento dentro da sua infraestrutura.

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

Estou mantendo a resposta abaixo para fins de arquivamento, mas ela não fornece nenhuma informação significativa.

Resposta original

Fiz isso usando um registro TXT.

Para redirecionar foo.bar.compara foo2.bar.com/path, basta adicionar foo IN TXT "1|foo2.bar.com/path"em sua bar.comzona DNS.

Ele também mantém os caminhos e parâmetros de url. Portanto, se você tentar acessar foo.bar.com/hello?foo=bar, será redirecionado para foo2.bar.com/path/hello?foo=bar.

Gabriel
fonte
6
Você poderia detalhar um pouco mais? Você tem alguma referência sobre como usar registros TXT?
Josiah
Isso também manterá os parâmetros de url?
andreas
1
Após investigação, parece que a OVH faz isso por mim. Consulte: ovh.com/fr/g1339.redirection-nom-de-domaine (fr). Vou atualizar minha resposta.
Gabriel
10

Para responder à pergunta original, não, o que você quer não é possível usando apenas DNS (como todos afirmaram). Além de tudo já mencionado, outra opção é usar um serviço de redirecionamento de URL. Esses tipos de serviços podem permitir que você configure muitos tipos diferentes de redirecionamentos de URL, dependendo de suas necessidades. Por exemplo:

  1. Encaminhe um apex de domínio para um www. subdomínio ou vice-versa
  2. Encaminhe uma coleção de nomes de domínio para um único destino (útil para encaminhar erros de ortografia de domínio, nomes antigos de empresas etc.)
  3. Encaminhar nomes de domínio específicos para páginas profundamente vinculadas (como o que o OP deseja)

Um serviço que faz isso é o EasyRedir . Divulgação completa: desenvolvi o EasyRedir. Certamente, existem outras opções por aí, então eu encorajo você a dar uma olhada.

wgrrrr
fonte
5

O DNS não redirecionará a parte do caminho de um URL, então isso não será possível.

Adicionando

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

irá direcionar o acesso de www.proof.com para www.proof-two.com, onde você precisará usar a configuração do servidor da web para direcionar os usuários à página apropriada.

Karl Barker
fonte
4

Minha solução para esse problema foi muito simples e direta. Tudo que você precisa é de um servidor IIS em execução dentro do domínio.

Configure o CNAME no DNS para apontar para o servidor IIS, usando nomes de host no IIS para resolver vários sites em um único servidor IIS. Estou usando o mesmo servidor IIS para alocar alguns subdomínios em sites externos.

Em seguida, no redirecionamento de configuração da configuração do IIS para que esse site vá para seu site / caminho externo, no meu caso, era nosso catálogo hospedado que eu queria que catalog.ourdomain.com fosse. A partir daqui, todos os ajustes são feitos no IIS. Certifique-se de habilitar a autenticação anônima para que o tráfego não seja bloqueado.

Don Schaefer
fonte
3

Suponho que você tenha o seguinte cenário: você tem um servidor da web exclusivo que hospeda vários sites, cada um deve ser apresentado por um domínio separado:

portanto, o page1.html deve ser veiculado por www.customer1.com e assim por diante.

  1. crie um subdomínio dentro do servidor dns example.com (seu servidor web):

    cliente1.example.com

  2. nas configurações do servidor virtual apache, mapeie o subdomínio para o diretório que contém o site do seu cliente nº 1, como este:

<VirtualHost *:80> SetEnv PAGE_ID "customer1" ServerName customer1.example.com ServerAlias www.customer1.com DocumentRoot /your/local/path/webserver/customer1 </VirtualHost> observe o valor de "ServerAlias", é importante para a próxima etapa-

neste ponto, você deve ser capaz de navegar até o site do seu cliente1 navegando até:

cliente1.example.com

  1. Nas configurações de DNS para customer1.com, você deve fazer um registro CNAME:

    CNAME = www LOCATION = customer1.example.com

Agora você pode usar: www.customer1.com.

cristão
fonte
3

Um trabalho relacionado concluiu todos os itens abaixo:

Problema:

http://a.com/p1/p2.html deve ir para http://B.com/p1/p2.html
hoje, mas mais tarde, quando configurado manualmente / automaticamente, o mesmo
http://a.com/p1 /p2.html deve ir para http://C.com/p1/p2.html

Respostas:

DNS - converte o nome em endereço IP

Embora possa fazer muitos redirecionamentos, sempre a saída é o endereço IP. O DNS não entende o caminho ou a parte do protocolo da URL, entende apenas a parte do domínio, ou seja, a.com só é convertido em endereço IP, portanto, quando você clicar em http: //a.com/p1/p2.html pode ser convertido em http://152.132.121.11/p1/p2.html se você configurar errado no DNS, então você obterá 152.132.121.11 (não http: //152.132. 121.11 / p1 / p2.html ), então você obteria algum erro 400s (400, 403 etc.)

Redirecionamento - http://a.com/p1/p2.html pode ser convertido para http://b.com/p1/p2.html

Todos os métodos como GET, POST podem funcionar, com se houver cabeçalhos e corpo, mas há um servidor web envolvido, pode ser um ponto de falha, portanto, escalabilidade e disponibilidade serão fundamentais

Se você estiver na AWS , Route 53 -> API Gateway é possível por meio de domínios personalizados, usando internamente a frente da nuvem

É possível com o Amazon Certification Manager, domínios personalizados do AWS Gateway e Route53, observe a restrição us-east-1 no ACM

Espero que ajude alguém

Manohar Reddy Poreddy
fonte
2

Embora, como quase todos já tenham afirmado, é impossível usar apenas DNS. Como solução alternativa, sugiro experimentar o NGINX ( http://nginx.org/en/docs/http/request_processing.html ).

TL; DR - No NGINX, você pode criar vários servidores virtuais que podem redirecionar sua solicitação com base no nome do servidor.

Ex. http://first.my-server.com redireciona para o local A e http://second.my-server.com redireciona para o local B, enquanto ambos compartilham um único servidor físico.

Nyxz
fonte
0

Você pode usar o mod de reescrita do htaccess, reescrever na subpasta se o usuário estiver solicitando um domínio específico e não o outro.

gnvsale
fonte
-1

Claro que é possível redirecionar, com o seguinte truque:

Crie uma nova zona primária padrão Nomeie-a igual ao URL fictício para o qual deseja redirecionar Certifique-se de que esse nome fictício seja diferente de qualquer nome AD DNS Crie um registro A com as seguintes entradas:

em branco ....................... A ......................... ... ip-addr-2

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

O que temos aqui é redirecionamento, essencialmente. Um URL válido será resolvido com base na zona DNS primária DNS existente. Um URL fictício será redirecionado para ip-addr-2. O que é importante é que o nome desta entrada esteja em branco, então ele irá cair para a próxima entrada no registro e redirecionar para ip-addr-2

Bran Kop
fonte
-4

Todo mundo já disse isso, e eu só quero te dar mais uma opção de serviço que pode te ajudar. www.301redirect.it é um serviço gratuito que pode redirecionar seu domínio (com curinga) para qualquer URL de destino.

Quero adicionar uma divulgação também: sou o desenvolvedor por trás deste serviço e há outras opções por aí.

Jimmie Andersson
fonte