Mam 2 domeny hostowane z różnymi hostami. Muszę przekierować domenę A do domeny B. Niestety nie mogę wykonać przekierowania 301 z hosta A, ale mogę jedynie modyfikować / dodawać wpisy DNS (A-Records i CNAME) na hoście A.
Czy na pewno można przekierować www.DomainA.com na www.DomainB.com przy użyciu tylko rekordów A i nazw CNAME?
Obecnie wpisy DNS to:
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.
Chcę przekierować
DomainA.com -> DomainB.com
*.DomainA.com -> *.DomainB.com
Wypróbowałem sugestię z tego innego postu, ale to nie zadziałało.
Jak mogę to osiągnąć tylko dzięki A-Records i CNAME? Dziękuję za radę.
Prembo.
Odpowiedzi:
Więc nie patrzysz na przekierowanie jako takie (tak jak dzieje się to na poziomie aplikacji, tj. Na Apache / Nginx / gdziekolwiek), ale raczej na rozdzielczość DNS. Host, na którym hostowana jest DomainA, będzie lub nigdy nie powinien zostać trafiony, na podstawie twojego opisu, ponieważ chcesz, aby żądania DNS były przetwarzane na adresy IP DomainB. Chyba że brakuje mi czegoś w twoim żądaniu?
Jak zauważył Shane, DNS nie może przekierowywać HTTP - to obowiązek aplikacji / serwera WWW. Możesz sprawić, aby DomainA i DomainB rozpoznały ten sam adres IP w DNS i wszystko działałoby. Ale jeśli chcesz to zrobić dla sposobu na adres URL / ścieżkę, to nie jest to możliwe - DNS nie jest w stanie tego zrobić - jest to prosta usługa DNS-> IP, to, co dzieje się z rzeczywistym adresem URL, jest zadaniem serwera.
Po komentarzu poniżej chciałbym odesłać wszystkie rekordy DNS dla domeny A do tych samych adresów IP, na które wskazuje DomainB - w ten sposób otrzymujesz żądanie HTTP uderzające w hostB, a następnie jest to po prostu kwestia:
Spowoduje to przepisanie wszystkiego, co przychodzi do DomainB do DomainA, które może być hostowane na tym samym serwerze lub w innym miejscu. Rozumiem, że druga opcja jest prawdopodobnie narzutem i nie jest konieczna, jeśli możesz / możesz tworzyć wirtualne hosty oparte na nazwie na Apache.
Wybrałbym 1. - skieruj wszystkie rekordy DNS domeny A na te same adresy IP, na które wskazuje DomainB i utwórz konkretne hosty wirtualne oparte na nazwie na Apache.
źródło
domain B
do istniejącego hosta wirtualnegodomain A
?Jak stwierdzili inni, przekierowanie HTTP nie jest możliwe przy użyciu samego DNS. DNS i HTTP współpracują ze sobą w celu przekierowania użytkownika z jednej strony na drugą.
Możesz sam używać DNS, aby domena A wyświetlała tę samą treść co domena B, ale przeglądarka internetowa pokaże domenę A w adresie URL. Musisz być bardzo ostrożny, ponieważ jest to dość złe z punktu widzenia SEO. Wpadniesz w kłopoty z powodu „zduplikowanej zawartości”, a wyszukiwarki za to cię ukarają.
Prawidłowym (z punktu widzenia UX i SEO) sposobem na wykonanie tej pracy jest przekierowanie HTTP z domeny A do domeny B.
Możesz ręcznie skonfigurować serwery WWW (Apache, Nginx, IIS itp.), Aby działały dla Ciebie, jeśli jesteś w stanie technicznie. Istnieje wiele dobrych zasobów do pomocy w Internecie.
Jeśli nie możesz lub nie chcesz kontrolować infrastruktury, możesz skorzystać z usługi przekierowywania adresów URL, aby wykonać to zadanie za Ciebie. Jestem założycielem jednego o nazwie EasyRedir , ale z pewnością są inni.
źródło
Domena A musi mieć takie same adresy IP jak w domenie B. Nie ma potrzeby odwoływania się do B w definicji A. Przeglądarki internetowe nie „podążają” za CNAME jako przekierowaniem, zachowują tę samą nazwę hosta i używają własnego rekordu CNAME do rozpoznania adresu IP.
Jeśli chcesz, aby B pojawiał się w przeglądarce podczas odwiedzania A (opcjonalny i niezwiązany z DNS), musisz dopasować Host HTTP i przekierować żądania na serwerze WWW. z Apache użyłbyś mod_rewrite, aby zrobić to tak w definicji hosta wirtualnego:
źródło
Oczywiście możliwe jest przekierowanie za pomocą następującej sztuczki:
puste ....................... A ......................... ... ip-addr-2
www ......................... A ....................... ..... ip-addr-2
Zasadniczo mamy tutaj przekierowanie. Prawidłowy adres URL zostanie rozpoznany na podstawie istniejącej podstawowej strefy DNS DNS. Fikcyjny adres URL zostanie przekierowany na ip-addr-2. Ważne jest to, że nazwa tego wpisu jest pusta, więc spadnie do następnego wpisu w rekordzie i przekieruje do ip-addr-2
źródło
Nie próbowałem tego, ale myślę , że możesz to zrobić:
Jest to w ogóle zamiast innych rekordów w pliku strefy DomainA. Bez SOA, nic.
Nie próbuj tego w domenie, na której zależy ci praca.
źródło
CNAME
rekordów w takich domenach nagich / wierzchołkowych jakdomain.com
, ale możesz w subdomenach takich jakwww.domain.com