Existe alguma maneira de redirecionar um domínio para outro via configurações de DNS mantendo as informações do caminho?

26

Por exemplo, meu domínio é example.come, quando alguém navega example.com/sample/page.htm, quero que ele seja redirecionado test.com/sample/page.htm.

Eu sei que isso provavelmente pode ser feito facilmente usando um .htaccessarquivo ou uma página 404. No entanto, estou procurando uma solução que não exija que meu provedor DNS hospede nenhum arquivo para mim.

Quero fazer isso apenas com configurações de DNS, por exemplo:

  • Registros CNAME
  • Registros A
  • 301 encaminhamento
  • (falta alguma outra configuração de DNS)

Há alguma maneira de fazer isso?

Sensível
fonte
Acho que o que você queria era mais uma configuração de curinga, mas acho que não pode ser implementada neste momento sem redirecionamentos.
Tim Post
alguém pode dar uma resposta clara e simples sobre isso .... :(
@ gordo, o que você não entende?
John Conde

Respostas:

12

Você pode fazer com que example.com/test.com seja resolvido no mesmo servidor da Web (IP) via dns (CNAME, se desejar) e isso funcionaria.

Se você deseja fazer isso em uma base por caminho, então não. O DNS desconhece coisas como URL. O DNS está simplesmente traduzindo a parte do host do URL (exemplo.com) em endereço IP. O servidor da Web é responsável por descobrir o que (ou onde) o URL deve resolver. Eu acredito que você precisaria fazer isso no nível do servidor web (http).

Thomas
fonte
11
Sim, se você configurar o CNAME no exemplo.com, não precisará hospedar nada para o exemplo.com. Basta definir o host test.com para responder a example.com e, em seguida, use mod_rewrite ou URL Rewriting em test.com para detectar o nome do host example.com e reescrever para si mesmo. Isso pode ser perigoso; é melhor ter example.com ter seu próprio vhost no servidor test.com, com apenas regras de redirecionamento.
21410 JasonBirch
8

Como foi observado, isso não pode ser feito inteiramente com o DNS. No entanto, se você possui o DNS para example.com, consulte o mesmo servidor que test.com, é muito simples configurar o Apache para realizar o que você deseja fazer. Basta adicionar o seguinte:

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

Isso reescreverá qualquer link de entrada para example.com em um link para test.com, preservando o caminho.

Além disso, seu provedor de DNS não precisa hospedar nenhum arquivo para você, pois isso depende apenas do servidor web que você já está executando no test.com.

Kris
fonte
Ou apenas adicionar directivas ServerAlias a de test.com arquivo host virtual ..
Michael Clerx
3

Você não pode fazer isso apenas via DNS. Os redirecionamentos 301 não são coisa de DNS. Eles são uma coisa de servidor da web.

O que você pode fazer é apontar as entradas DNS de example.com para o mesmo servidor que test.com e configurar example.com como um domínio alternativo para test.com.

intlect
fonte
3

Aqui está a .htaccessregra exata que eu uso para redirecionar todas as solicitações de www.mydomain.com para mydomain.com (já que a menor é minha URL canônica):

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

Isso é fácil de modificar para redirecionar de foo.compara foobar.com, enquanto preserva a solicitação, o cliente recebe um redirecionamento 301 para o domínio apropriado.

No entanto, você não pode fazer isso "apenas" com o DNS, como já foi dito, os servidores DNS apenas resolvem os FQDNs para endereços IP.

Tim Post
fonte
Usei isso, mas tive que remover a última barra na sua segunda linha ( RewriteRule ^(.*)$ http://mydomain.com$1 [R=301,L]) ou ela adicionaria duas barras ao URL redirecionado. Alguém mais experimentou isso?
21712