Yol bilgisini tutan DNS ayarları aracılığıyla bir etki alanını diğerine yönlendirmenin bir yolu var mı?


26

Örneğin, etki alanım example.comve birisi gittiğinde example.com/sample/page.htm, yönlendirmesini istiyorum test.com/sample/page.htm.

Bunun muhtemelen bir .htaccessdosya veya 404 sayfa kullanılarak kolayca yapılabileceğini biliyorum . Ancak, DNS sağlayıcımın benim için herhangi bir dosyayı barındırmasını gerektirmeyen bir çözüm arıyorum.

Bunu sadece DNS ayarlarıyla yapmak istiyorum, örneğin:

  • CNAME kayıtları
  • Bir kayıtları
  • 301 yönlendirme
  • (kaçırdığım diğer DNS ayarları)

Bunu yapmanın bir yolu var mı?


Sanırım istediğin daha çok bir joker kuruydu, ama bu noktada yönlendirmeler olmadan uygulanabileceğini sanmıyorum.
Tim Post

Herkes bu konuda açık ve basit bir cevap verebilir

@ fatty, ne anlamıyorsun?
John Conde

Yanıtlar:


12

Example.com/test.com adresini aynı web sunucusuna (IP) dns (isterseniz CNAME ile) ile çözümleyebilirsiniz ve işe yarayabilir.

Bunu yapmak için yola göre, hayırdan daha fazla bir yol arıyorsanız. DNS, URL gibi şeylerden habersizdir. DNS, url'nin (example.com) ana kısmını IP adresine çeviriyor. Web sunucusu, url'nin ne (veya nerede) çözmesi gerektiğini bulmaktan sorumludur. Bunu web sunucusu (http) düzeyinde yapmanız gerekeceğine inanıyorum.


1
Evet, CNAME'i example.com'a kurduysanız, example.com için hiçbir şey barındırmanıza gerek yoktur. Test.com ana bilgisayarını example.com'a yanıt verecek şekilde ayarlayın, ardından example.com ana bilgisayar adını algılamak ve kendi kendine yeniden yazmak için test.com'da mod_rewrite veya URL Yeniden Yazma'yı kullanın. Bu olsa tehlikeli olabilir; example.com'un test.com sunucusundaki kendi vhost'una sahip olması daha iyidir, sadece yönlendirme kuralları vardır.
JasonBirch

8

Belirtildiği gibi, bu tamamen DNS ile yapılamaz. Bununla birlikte, eğer example.com için DNS'niz varsa, test.com ile aynı sunucuya başvurursanız, Apache'yi yapmak istediğiniz şeyi başarması için yapılandırmak çok kolaydır. Sadece aşağıdakileri ekleyin:

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

Bu, example.com'a gelen tüm bağlantıları, yolu koruyan test.com için verilen bir bağlantıya yeniden yazar.

Ayrıca, DNS sağlayıcınızın sizin için herhangi bir dosyayı barındırması gerekmez, çünkü bu yalnızca test.com için çalıştırmakta olduğunuz web sunucusuna dayanır.


Veya yalnızca test.com'un sanal ana bilgisayar dosyasına ServerAlias ​​yönergeleri ekleyin ..
Michael Clerx 9:13

3

Bunu sadece DNS ile yapamazsınız. 301 yönlendirmeleri bir DNS olayı değildir. Onlar bir web sunucusu işi.

Yapabileceğiniz şey example.com DNS girişlerinizi test.com ile aynı sunucuya yönlendirmek ve example.com'u test.com için bir takma ad alanı olarak ayarlamaktır.


3

İşte tam olduğunu .htaccess(daha kısa benim standart URL olduğundan) Ben mydomain.com için www.mydomain.com gelen tüm istekleri yönlendirmek için kullandığı kural:

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

Yani gelen yönlendirmek için değiştirmek kolay yeter foo.cometmek foobar.comisteğini koruyarak, müşteri sadece uygun etki için bir 301 yönlendirmesi alır.

Ancak bunu 'sadece' DNS ile yapamazsınız, diğerleri dediği gibi, DNS sunucuları FQDN'leri IP adreslerine göre çözer.


Bunu kullandım, ancak ikinci satırınızdaki son eğik çizgiyi kaldırmak zorunda kaldım ( RewriteRule ^(.*)$ http://mydomain.com$1 [R=301,L]) yoksa yönlendirilen URL’ye iki eğik çizgi eklerdi. Bunu başka biri yaşadı mı?
julien_c
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.