Yalnızca A-Records ve CNAME kayıtları kullanılarak etki alanı A etki alanı B'ye nasıl yönlendirilir


46

Farklı ana bilgisayarlarla barındırılan 2 etki alanım var. Etki Alanı A'yı Etki Alanı B'ye yönlendirmem gerekiyor. Maalesef Ana Bilgisayar A'dan 301 yönlendirmesi yapamıyorum, ancak Ana Bilgisayar A'daki yalnızca DNS girişlerini (A-Kayıtları ve CNAME'ler) değiştirebilir / ekleyebilir.

Elbette www.DomainA.com adresini www.DomainB.com sitesine sadece A kayıtları ve CNAME kullanarak yönlendirmek mümkün müdür?

Şu anda, DNS girişleri:

DomainA.com.    3600    IN    SOA       ns1.HostA.net.
www             3600    IN    CNAME     www.DomainB.com.    
DomainA.com.    3600    IN    NS        ns1.HostA.net.  
DomainA.com.    3600    IN    NS        ns2.HostA.net.  
DomainA.com.    3600    IN    NS        ns3.HostA.net.

Yönlendirmek istiyorum

DomainA.com -> DomainB.com
*.DomainA.com -> *.DomainB.com

Bu işten öneri denedim diğer yazı ama işe yaramadı.

Bunu sadece A-Records ve CNAME'lerle nasıl başarabilirim? Tavsiyen için teşekkürler.

Prembo.


2
Ne tür bir yönlendirme elde etmek istiyorsun? DNS olduğu değil herhangi bir şekilde bir HTTP yönlendirmesi gibi hareket edebilen - bir tarayıcı yalnız DNS erişmeye çalıştığınız ne konak değiştirmek mümkün değil.
Shane Madden

Bir 301 yönlendirmesinin ideal olduğunu ve yakın gelecekte yapmayı düşündüğümüz şeyin bu olduğunu biliyorum (ne yazık ki, A etki alanı 50 gün boyunca A ana bilgisayarına sıkışmış durumda ve kilitlenme süresi nedeniyle devredilemiyor. Fazladan bir 'paket' için ödeme yapmazsanız, HTTP yönlendirmesini yapmanıza izin vermeyin. Şu an için, A etki alanından etki alanını herhangi bir zamanda, A etki alanından A Etki
Alanı

1
DNS olamaz yönlendirmeleri yapmak. Sadece yapabileceği şey, DNS takma (bir isim bir kopyası gibi başka aynı görünüyor) 'dir. Bu, bir yere gelen insanları farklı bir yere göndermekle aynı şey değil.
Chris S

Bir HTTP yönlendirmesi ile DNS çözünürlüğü / yetkilendirme arasındaki farkı açıkladığınız için teşekkür ederiz. Şimdi anlıyorum.
Prembo

Yanıtlar:


38

Dolayısıyla, yönlendirmeye (uygulama düzeyinde olduğu gibi, yani Apache / Nginx / nerede olursa olsun) bakmıyorsunuz, bunun yerine DNS çözünürlüğüne bakıyorsunuz. Etki AlanıA'nın barındırıldığı ana bilgisayar, DNS isteklerinin Etki Alanı B'nin IP'lerine çözümlenmesini istediğiniz şekilde açıklamanıza bağlı olarak isabet etmeyecek veya etkilenmemelidir. İsteğinizde bir şey kaçırmıyorsam?

Shane'in belirttiği gibi, DNS, HTTP yeniden yönlendirme yeteneğine sahip değildir - bu bir uygulama / web sunucusu görevidir. DomainA ve DomainB’nin DNS’de aynı IP’ye çözümlenmesini sağlayabilirsiniz; Ancak bunu URL başına / yol başına bir şekilde yapmak istiyorsanız, o zaman bu mümkün değil - DNS bunu yapamaz - basit bir DNS -> IP hizmetidir, gerçek URL ile olan şey web sunucusunun görevidir.

Aşağıdaki yorumdan sonra, yapacağım şey, DomainA'nın tüm DNS kayıtlarını DomainB'nin gösterdiği IP'lere aynı IP'lere yönlendirmek.

  1. Belirli bir Apache Ad Tabanlı Sanal ana bilgisayar oluşturma - bu, kendi DocumentRoot'undan dosya sunacak
  2. Apache’de şu şekilde kalıcı yönlendirme oluşturma:

Bu, DomainB'ye gelen herhangi bir şeyi aynı sunucuda veya başka bir yerde barındırılabilecek olan DomainA'ya yeniden yazacaktır. İkinci seçeneğin muhtemelen bir ek yük olduğunu ve apache'de Ad Tabanlı Sanal ana bilgisayarlar oluşturabiliyorsanız / izin veriyorsanız gerekli olmadığını kabul ediyorum.

<VirtualHost *:80>
  ServerName DomainB
  Redirect permanent / http://DomainA/
</VirtualHost>

1 ile giderim. - DomainA'nın tüm DNS kayıtlarını DomainB'nin gösterdiği IP'lere aynı IP’ler olarak gösterin ve Apache’de belirli bir Ad Tabanlı VirtualHosts oluşturun.


Evet doğru anlıyorsunuz - lütfen yukarıdaki yorumuma bakın. Peki hangi DNS girişleri bu hedefe ulaşmak için yardımcı olabilir? Host A'da web barındırma yok, sadece etki alanı orada tutuluyor. Ve tüm trafiğin etki alanı A’ya Etki Alanı B’ye çözümlenmesini istiyoruz ... Zaman ayırdığınız için çok teşekkürler.
Prembo

Bu, domain Bmevcut sanal ana bilgisayara ServerAlias'ı eklemekle aynı mı domain A?
BadHorsie

9

Diğerlerinin de belirttiği gibi, yalnızca DNS ile HTTP yeniden yönlendirme yapmak mümkün değildir. DNS ve HTTP, bir kullanıcıyı bir web sayfasından diğerine yönlendirmek için birlikte çalışır.

Etki alanı A'nın etki alanı B ile aynı içeriği göstermesini sağlamak için DNS'yi kendi başına kullanabilirsiniz, ancak web tarayıcısı URL'de etki alanı A'yı gösterir. SEO açısından oldukça kötü olduğu için bu konuda çok dikkatli olmalısınız. "Yinelenen içerik" için başınız derde girecek ve arama motorları sizi bunun için cezalandıracak.

Bu işi yapmanın doğru (bir UX ve SEO perspektifinden) yolu, Alan A'dan Alan B'ye bir HTTP yönlendirmesi yapmaktır.

Teknik olarak yapabiliyorsanız, web sunucularınızı (Apache, Nginx, IIS, vb.) Bu işi sizin için yapacak şekilde elle yapılandırabilirsiniz. Web’de buna yardımcı olacak birçok kaynak var.

Altyapıyı kontrol etmek istemiyorsanız veya kontrol etmek istemiyorsanız, bu işi sizin için yapmak için bir URL yönlendirme hizmeti kullanabilirsiniz. Ben EasyRedir adında birinin kurucusuyum ama kesinlikle başkaları da var.


5

Etki Alanı A, etki alanı B'dekiyle aynı IP adreslerine sahip olmalıdır. A'nın tanımında B'ye herhangi bir referans gerekmez. Web tarayıcıları CNAME'leri yönlendirme olarak "izlemez", aynı ana bilgisayar adını korurlar ve bir IP adresine çözümlemek için CNAME'nin kendi kaydını kullanırlar.

A ziyaret edildiğinde (isteğe bağlı ve DNS ile ilgisiz) B'nin tarayıcıda görünmesini istiyorsanız, HTTP Ana Bilgisayarını eşleştirmeniz ve Web sunucusundaki istekleri yönlendirmeniz gerekir. Apache ile sanal bir ana bilgisayar tanımında böyle yapmak için mod_rewrite kullanırsınız:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?domainB.com$
RewriteRule ^/(.*)$ http://www.domainA.com/$1 [R=301,L]

0

Tabii ki, aşağıdaki numara ile yönlendirmek mümkündür:

  1. Yeni bir standart birincil bölge oluşturun
  2. Yönlendirmek istediğiniz kurgusal URL ile aynı adı verin
  3. Bu kurgusal adın, AD DNS adından farklı olduğundan emin olun
  4. Aşağıdaki girişlerle bir kayıt oluşturun:

Boş ....................... A ......................... ... ip-addr-2

www ......................... bir ....................... ..... ip-addr-2

Burada sahip olduğumuz şey aslında yönlendirme. Geçerli bir DNS birincil DNS bölgesini temel alarak geçerli bir URL çözülür. Hayali bir URL ip-addr-2'ye yönlendirilecek. Önemli olan, bu girişin adının boş olması, kayıttaki bir sonraki girişe düşmesi ve ip-addr-2'ye yönlendirilmesidir.


-1

Denemedim, ama şunu yapabileceğini düşünüyorum :

DomainA.com. CNAME DomainB.com.

Bu, DomainA bölge dosyasındaki tüm kayıtların yerine geçer. SOA yok, hiçbir şey yok.

Bunu, çalışmayı umursadığınız bir alanda denemeyin.


SOA'dan ayrılmanıza rağmen bunun alt alan adlarının çözünürlüğünü yönlendireceğine inanmıyorum. DNAME bunu yapacak şekilde tasarlanmıştır, ancak nedense kimsenin anlayamadığı bir durumdur, CNAME ve DNAME birbirini dışlar.
Falcon Momot

2
Gibi CNAMEçıplak / apeks etki alanlarına kayıtları yerleştiremezsiniz domain.com, ancak gibi alt etki alanlarına kaydedebilirsinizwww.domain.com
Petrus Theron

Bu yönlendirmez , sadece www.DomainA.com adresini DomainB'in IP adresine gönderir; ve yalnızca alt alanlar için çalışır (çıplak etki alanı0> değil
9
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.