[Kapalı] yolu olan başka bir URL'ye yeniden yönlendirmek için DNS'yi kullanma


120

Bir alanı DNS aracılığıyla başka birine yönlendirmeye çalışıyorum.

IN CNAME kullanmanın mümkün olduğunu biliyorum.

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

İhtiyacım olan şey, bir yol ile yeniden yönlendirme. Birisi yazı yazdığında www.proof.com, onuwww.proof-two.com/path/index.htm

Web Sunucusu olanakları kullanılarak yapılabileceğini biliyorum, ancak DNS yeniden yönlendirmesine ihtiyacım var.

Mümkün mü?


Google etki alanını kullanıyorsanız, sol menü -> Web sitesinde "Alan yönlendirme" seçeneğini kullanabilirsiniz.
John_J

Yanıtlar:


136

Hayır, istediğin mümkün değil. DNS, ad çözümleme sistemidir ve HTTP hakkında hiçbir şey bilmiyor.


93

AWS kullanıyorsanız, benzeri bir yönlendirme

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

aşağıdaki gibi kurulabilir:

  1. s3'te boş bir "mail.foo.com" kova oluşturun
  2. Özellikler -> Statik Web Sitesi Barındırma altında, "tüm istekleri şu adrese yönlendir: mail.google.com/a/foo.com" seçeneğini ayarlayın
  3. route53'te, bir "mail.foo.com" A kaydı oluşturun
  4. "takma adı" etkinleştirin ve takma ad hedefini "mail.foo.com" grubuna ayarlayın

saf bir DNS çözümü değil, ancak işe yarıyor;)

Ancak, yönlendirmenin tüm URL parametrelerini atladığını unutmayın, örneğin: ...? Param1 = değer1 & param2 = değer2


3
Bu, AWS kullanan herkes için harika ve çok faydalı bir cevaptır. Teşekkür ederim! Tatlı geçici çözüm
Ken

6
Dikkat edilmesi gereken önemli: Paket, kendisine yönlendirilen ana makine adıyla eşleşecek şekilde adlandırılmalıdır. Bkz serverfault.com/a/584714/105720
Ürdün Feldstein

1
Bu, bir dizine yönlendirme olarak çalışır, ancak belirli bir sayfaya yönlendirilmez. Tüm istekleri "www.example.com/foo/bar/baz.html" adresine yönlendirirseniz AWS, URL'ye "yardımcı bir şekilde" bir "/" ekleyerek URL'yi "www.example.com/foo/bar/baz .html / "ve 404 hatası döndürüyor.
Earl Ruby

34

Bunun eski bir konu olduğunun farkındayım ama FWIW, çünkü başka biri bunu yapmanın bir yolunu arıyor.

Dns, url'nin yol kısmını anlamasa da, alt alan adlarını anlayacaktır, dolayısıyla bunun yerine:

CNAME'DE www.proof.com www.proof-two.com/path/index.htm

Kullanabilirsin:

CNAME proof.proof-two.com'DA www.proof.com

daha sonra proof-two.com'u barındırdığınız yere gidin ve proof.proof-two.com'u www.proof-two.com/path/index.htm adresine yönlendirecek şekilde ayarlayın.

~ Bir kedinin derisini yüzmenin her zaman birden fazla yolu vardır


2
Bu, proof.proof-two.com'un www.proof-two.com/path/index.htm adresini göstermesi yerine, işe yaramaz bir yapı gibi geliyor kulağa, www.roof.com'un oraya işaret etmesini sağlayabilirsiniz, gerek yok ekstra DNS kayıtları.
Michiel

12
@Michiel Web sunucularına kolay erişiminiz varsa kulağa işe yaramaz bir yapı gibi geliyor proof-two.com. Bazen büyük şirketler (ve bürokrasi) her şeyi olabileceğinden çok daha karmaşık hale getirir.
cregox

1
"daha sonra prova-two.com'u barındırdığınız yere gidin ve proof.proof-two.com'u www.proof-two.com/path/index.htm adresine yönlendirecek şekilde ayarlayın" Bunu nasıl yapacaksınız?
user2060451

17

Bu sorunu çözmenize yardımcı olabilecek kişisel bir projem var. Yalnızca DNS ayarlarınızı değiştirerek alanınızı yeniden yönlendirmenize olanak tanıyan açık kaynaklı bir yönlendirme çözümüdür. Projenin bağlantısı: https://redirect.center/ .

URL parametrelerini koruyarak www.proof.com'u www.proof-two.com'a yönlendirmek için, sadece proof.com'da www DNS girişinizi ayarlayın:

CNAME'DE www.proof.com www.proof-two.com.opts-uri.redirect.center.


Soru, yalnızca bir etki alanına değil, tam bir yol URL'sine yeniden yönlendirmeyle ilgiliydi.
Tony Chiboucas

2
Bu hala tam bir yol değil
Tony Chiboucas

2
Bir yol, hizmetin ".opts-eğik çizgisi" aracılığıyla desteklenebilir. işlevi. Yönlendirme jobs.my-domain.com için my-domain.com/jobs yapılandır DNS Bölgesi şöyledir: Sunucu Kaydı: işler yazın: CNAME Adresi: www.my-domain.com.opts-slash.jobs.redirect.center
David Turner

1
Kayıt şirketiniz yeniden yönlendirme sağlamıyorsa bu gerçekten harika ve basittir - harika!
Luca Steeb

1
Bu harika! Bunun gibi bir şeyin var olduğunu varsaydım, ancak bulamadım (sanırım SEO'ları üzerinde çalışmaları gerekiyor).
Matt Dodge

11

Redirect.center ile gerçekten çok kolay

Bir CNAME oluşturmak istiyorsanız:

CNAME'DE www.proof.com www.proof-two.com/path/index.htm

redirect.center kullanarak CNAME görünümünüzü aşağıdaki gibi kanonik mod olarak kullanın:

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

Şimdi, https web sitesine yeniden yönlendirmek istiyorsanız, bu seçeneği ekleyebilirsiniz:

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

Artık kader sayfanızda eğik çizgi ile kanonik modda bir CNAME oluşturabilirsiniz.


Bunu deniyorum ama işe yaramıyor. Tek yaptığı, kullanıcıları redirect.center'ın sitesine yönlendirmektir.
Renan

CNAME kaydınızı kopyalayabilir misiniz? Yeniden yönlendirilen sitenizi de kopyalayabilir misiniz?
Alvaro Aguilar

1
@Renan Kaynak etki alanının DNS'de bulunduğundan ve redirect.center sunucusu tarafından aranabildiğinden emin olun; ayrıca tarayıcıda target-domain.com.redirect.center'a gitmek de işe yaramaz. Açıklamaya bakın: github.com/udleinati/redirect.center/issues/…
redfish

11

Düzenle

Görünüşe göre altyapısında bu tür bir yönlendirmeye izin veren benim sağlayıcım (OVH).

Bakınız: https://docs.ovh.com/gb/en/domains/redirect-domain-name/

Arşivleme amacıyla aşağıdaki cevabı saklıyorum, ancak anlamlı herhangi bir bilgi sağlamıyor.

Orijinal cevap

Bunu bir TXT kaydı kullanarak yaptım.

Yönlendirme foo.bar.comyapmak için DNS bölgenizi foo2.bar.com/patheklemeniz yeterlidir.foo IN TXT "1|foo2.bar.com/path"bar.com

Ayrıca url yollarını ve parametrelerini de tutar. Yani erişmeye çalışırsanız foo.bar.com/hello?foo=bar, sayfasına yönlendirileceksiniz foo2.bar.com/path/hello?foo=bar.


6
Bunu biraz daha açıklayabilir misin? TXT kayıtlarının nasıl kullanılacağına dair herhangi bir referansınız var mı?
Josiah

Bu aynı zamanda url parametrelerini de koruyacak mı?
andreas

1
İncelemeden sonra, OVH bunu benim için yapıyor gibi görünüyor. Bakınız: ovh.com/fr/g1339.redirection-nom-de-domaine (fr). Cevabımı güncelleyeceğim.
Gabriel

10

Asıl soruyu cevaplamak, hayır, istediğiniz şey sadece DNS kullanarak mümkün değildir (herkesin söylediği gibi). Daha önce bahsedilen her şeye ek olarak, başka bir seçenek de bir URL yeniden yönlendirme hizmeti kullanmaktır. Bu tür hizmetler, ihtiyaçlarınıza bağlı olarak birçok farklı türde URL yeniden yönlendirmesi yapılandırmanıza olanak sağlayabilir. Örneğin:

  1. Bir etki alanının apeksini bir www. alt alan adı veya tam tersi
  2. Bir etki alanı adı koleksiyonunu tek bir hedefe iletin (etki alanı yanlış yazımlarını, eski şirket adlarını vb. İletmek için kullanışlıdır)
  3. Belirli alan adlarını derin bağlantılı sayfalara yönlendirin (OP'nin istediği gibi)

Bunu yapan bir hizmet EasyRedir'dir . Tam açıklama: EasyRedir'i geliştirdim. Yine de kesinlikle başka seçenekler de var, bu yüzden etrafa bir göz atmanızı tavsiye ederim.


5

DNS, bir URL'nin yol bölümünü yeniden yönlendirmeyeceği için bu mümkün olmayacaktır.

Ekleme

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

www.proof.com'a, kullanıcıları uygun sayfaya yönlendirmek için web sunucusu yapılandırmasını kullanmanız gerekeceği www.proof-two.com'a doğrudan erişim sağlayacaktır.


4

Bu soruna çözümüm oldukça basit ve anlaşılırdı. Tek ihtiyacınız olan, etki alanı içinde çalışan bir IIS sunucusudur.

Tek bir IIS sunucusundaki birkaç siteyi çözmek için IIS'deki ana bilgisayar adlarını kullanarak, CNAME'i IIS sunucusunu işaret edecek şekilde DNS'de kurun. Birkaç alt etki alanını harici sitelere taşımak için aynı IIS sunucusunu kullanıyorum.

Daha sonra IIS kurulum kurulumunda o sitenin site dışı sitenize / yolunuza gitmesi için yeniden yönlendirme, benim durumumda katalog.alaniniz.com'un gitmesini istediğim barındırılan kataloğumuzdu. Buradan tüm ince ayarlar IIS'de yapılır. Anonim kimlik doğrulamasını etkinleştirdiğinizden emin olun, böylece trafik engellenmez.


3

Şu senaryoya sahip olduğunuzu varsayacağım: Çeşitli web sitelerini barındıran benzersiz bir web sunucunuz var, her birinin ayrı bir alan adı tarafından sunulması gerekiyor:

bu nedenle, page1.html, www.customer1.com tarafından sunulmalıdır vb.

  1. example.com dns sunucusunda (web sunucunuz) bir alt alan oluşturun :

    customer1.example.com

  2. apache sanal sunucusu ayarlarınızda, alt alan adını müşterinizin 1 numaralı web sitesini içeren dizine şu şekilde eşleyin:

<VirtualHost *:80> SetEnv PAGE_ID "customer1" ServerName customer1.example.com ServerAlias www.customer1.com DocumentRoot /your/local/path/webserver/customer1 </VirtualHost> lütfen "ServerAlias" değerini not edin, sonraki adım için önemlidir.

bu noktada, müşteri1 web sitenize şu adrese göz atarak gidebilmeniz gerekir:

customer1.example.com

  1. Customer1.com için DNS ayarlarında bir CNAME kaydı yapmalısınız:

    CNAME = www LOCATION = müşteri1.example.com

Şimdi, www.customer1.com'u kullanma yetkiniz var.


3

İlgili bir çalışma aşağıdakilerin tümünü sonuçlandırdı:

Sorun:

http://a.com/p1/p2.html bugün http://B.com/p1/p2.html adresine gitmeli
, ancak daha sonra manuel / otomatik olarak yapılandırıldığında aynı
http://a.com/p1 /p2.html , http://C.com/p1/p2.html adresine gitmelidir

Yanıtlar:

DNS - adı IP adresine dönüştürür

Pek çok yeniden yönlendirme yapabilmesine rağmen, her zaman çıktı IP adresidir. DNS, URL'nin yolunu veya protokol kısmını anlamaz, yalnızca alan kısmını anlar, yani a.com yalnızca IP adresine dönüştürülür, bu nedenle http: DNS'de yanlış yapılandırırsanız, //a.com/p1/p2.html http://152.132.121.11/p1/p2.html'ye dönüştürülebilir , ardından 152.132.121.11 ( http: //152.132.132 değil) elde edersiniz. 121.11 / p1 / p2.html ), böylece 400s hatası alırsınız (400, 403 vb.)

Yeniden yönlendirme - bu, http://a.com/p1/p2.html , http://b.com/p1/p2.html'ye dönüştürülebilir

GET, POST gibi tüm yöntemler, herhangi bir başlık ve gövde varsa çalışabilir, ancak bir web sunucusu varsa, bu başarısızlık noktası olabilir, bu nedenle ölçeklenebilirlik ve kullanılabilirlik anahtar olacaktır

AWS üzerindeyseniz , Route 53 -> API Gateway, dahili olarak Bulut cephesini kullanarak özel alan adlarıyla mümkündür

Amazon Certification Manager, AWS Gateway özel etki alanları ve Route53 ile mümkündür, ACM'deki us-east-1 kısıtlamasına dikkat edin

Umarım birine yardımcı olur


2

Neredeyse herkesin daha önce belirttiği gibi - sadece DNS kullanmak imkansız. Geçici bir çözüm olarak NGINX'i denemenizi öneririm ( http://nginx.org/en/docs/http/request_processing.html ).

TL; DR - NGINX'te, isteğinizi sunucu adına göre yeniden yönlendirebilecek birden çok sanal sunucu oluşturabilirsiniz.

Ör. Her ikisi de tek bir fiziksel sunucuyu paylaşırken, http://first.my-server.com A konumuna yeniden yönlendir ve http://second.my-server.com B konumuna yeniden yönlendir.


0

Htaccess yeniden yazma modunu kullanabilir, kullanıcı diğerini değil belirli bir etki alanını talep ediyorsa alt klasöre yeniden yazabilirsiniz.


-1

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

Yeni bir standart birincil bölge oluşturun Bunu, yönlendirmek istediğiniz kurgusal URL ile aynı şekilde adlandırın Bu kurgusal adın herhangi bir AD DNS adından farklı olduğundan emin olun Aşağıdaki girişlerle A kaydı oluşturun:

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

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

Burada sahip olduğumuz şey esasen yeniden yönlendirme. Geçerli bir URL, mevcut DNS birincil DNS bölgesine göre çözülür. Kurgusal bir URL ip-addr-2'ye yönlendirilecektir. Önemli olan, bu girişin adının boş olmasıdır, bu nedenle kayıttaki bir sonraki girişe düşecek ve ip-addr-2'ye yönlendirilecektir.


-4

Herkes bunu zaten ifade etti ve size yardımcı olabilecek bir hizmet için size başka bir seçenek sunmak istiyorum. www.301redirect.it , etki alanınızı (joker karakterle) herhangi bir hedef URL'ye yeniden yönlendirebilen ücretsiz bir hizmettir.

Bir açıklama eklemek istiyorum: Bu hizmetin arkasındaki geliştiriciyim ve orada başka seçenekler de var.

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.