2008-08-19 12 views
39

Mam 2 hostów i chciałbym wskazać subdomenę na hoście jednym z subdomeny na hoście dwa:Jak przekierować Sitea do siteB z rekordami A lub CNAME

subdomain.hostone.com --> subdomain.hosttwo.com 

Dodałem rekord CNAME do hosta jeden wskazuje na subdomain.hosttwo.com, ale dostaję tylko błąd "400 Bad Request".

Czy ktoś może zobaczyć, co robię źle?

+11

Nie widzę, że to nie dotyczy tematu. Konfiguracja DNS znajduje się w zakresie programowania. – superluminary

+20

@ supergłodziny: "offtopic" oznacza, że ​​mod nie zna pola lub miał zły dzień włosów, lub chciał odznaki za zamknięcie biletu. W tym przypadku pytanie jest lepiej dostosowane do IMHO ServerFault, więc powinno zostać przeniesione, a nie zamknięte. – SamGoody

+0

Nie można się zgodzić, post powinien zostać ponownie otwarty lub przeniesiony, konfiguracja DNS jest czymś, co rozciąga się na oba obszary. –

Odpowiedz

13

Spróbuj zmienić go na „subdomeny -> subdomain.hosttwo.com”

CNAME jest aliasem dla pewnej kategorii, więc, gdy idziesz do panelu sterowania hostone.com, nie powinien mieć wprowadzić całą nazwę do aliasu CNAME.

Jeśli chodzi o błąd, możesz zalogować się na subdomain.hostwo.com i sprawdzić logi?

+0

czym różni się od normalnego przekierowania URI i przekierowania CNAME? – Elankeeran

+2

@Elankeeran Przekierowanie adresu URL może zawierać ścieżkę - CNAMES może składać się wyłącznie z pełnych domen. na przykład. URL Przekierowanie podmain (np. 'Www') do <[SubDomena.] Domena.TLD> [/ Ścieżka [/ ...]] (np.' Https: // www.przykład.com/witryny/xyz') gdzie jako poddomena CNAME (np. 'www') do <[SubDoman.] Domena.TLD> (np.' ghs.google.com') –

+0

Nazwa CNAME jest aliasem dla rekordu A lub AAAA, który nigdy nie może być domeną, ale jest zawsze nazwą * w ramach * domeny lub nazwy domeny, w skrócie. –

2

Wygląda na to, że serwer WWW na hosttwo.com nie pozwala na przekazywanie nieokreślonych domen. Powiedziałeś także, że chcesz wykonać przekierowanie, w rzeczywistości nie jest to metoda przekierowania. Jeśli kupiłeś tę domenę za pośrednictwem GoDaddy, możesz po prostu skorzystać z ich usługi przekierowania.

+0

lub zmień host :) – Eoin

0

Prawdopodobnie najlepiej/najłatwiej ustawić 301 redirect. Nie wymaga hakowania DNS.

0

Możesz zmienić nazwę DNS tylko na inny adres IP, więc jeśli używasz hostów wirtualnych, przekierowanie z DNSem nie będzie działać.

Po wpisaniu w domenie adresu subdomain.hostone.com będzie używał DNS do uzyskania adresu IP (jeśli jest to rekord CNAME, będzie kontynuowany, dopóki nie otrzyma adresu IP z rekordu A), połączy się z tym IP i wyśle żądanie http z adresem:

Host: subdomain.hostone.com

gdzieś w nagłówkach http.

0

Można to zrobić na kilka sposobów poza DNS. Strona docelowa na subdomain.hostone.com może mieć HTTP redirect. Serwer WWW na hostone.com można skonfigurować do przekierowania (łatwo w Apache, nie wiesz o IIS), itp.

11

Myślę, że kilka odpowiedzi dotyczy potencjalnego rozwiązania twojego problemu.

Zgadzam się, że najłatwiejszym (i najlepszym rozwiązaniem do celów SEO) jest przekierowanie 301. W IIS jest to dość banalne, należy utworzyć witrynę dla subdomain.hostone.com, po utworzeniu witryny, kliknij prawym przyciskiem myszy na stronie i przejdź do właściwości. Kliknij kartę "Katalog macierzysty" w oknie właściwości witryny, które zostanie otwarte. Wybierz przycisk "Przekierowanie do adresu URL", wprowadź adres URL nowej witryny (http://subdomain.hosttwo.com) i zaznacz pola wyboru "Dokładny adres URL wpisany powyżej", "Trwałe przekierowanie dla tego zasobu" (to drugie pole wyboru powoduje Przekierowanie 301 zamiast przekierowania 302). Kliknij OK i gotowe.

Lub można utworzyć stronę na miejscu http://subdomain.hostone.com, stosując jedną z następujących metod (w zależności od tego, co obsługuje platforma hosting)

PHP Przekierowanie:


<? 
Header("HTTP/1.1 301 Moved Permanently"); 
Header("Location: http://subdomain.hosttwo.com"); 
?> 

ASP Przekierowanie:


<%@ Language=VBScript %> 
<% 
Response.Status="301 Moved Permanently" 
Response.AddHeader "Location","http://subdomain.hosttwo.com" 
%> 

ASP .NET Przekierowanie:


<script runat="server"> 
private void Page_Load(object sender, System.EventArgs e) 
{ 
Response.Status = "301 Moved Permanently"; 
Response.AddHeader("Location","http://subdomain.hosttwo.com"); 
} 
</script> 

Teraz zakładając, że rekord CNAME został poprawnie utworzony, jedyny problem występuje w witrynie utworzonej dla http://subdomain.hosttwo.com przy użyciu współużytkowanego adresu IP i nagłówków hosta w celu ustalenia, która strona powinna być wyświetlana. Aby rozwiązać ten problem w IIS, w Menedżerze IIS na serwerze WWW, kliknij prawym przyciskiem myszy na stronie poddomeny.hosttwo.com i kliknij "Właściwości". Na wyświetlonej zakładce "Witryna sieci Web" powinien pojawić się przycisk "Zaawansowane" obok adresu IP, który należy kliknąć. W wyświetlonym oknie "Advanced Web Site Identification" kliknij "Add". Wybierz ten sam adres IP, który jest już używany przez subdomain.hosttwo.com, wpisz 80 jako port TCP, a następnie wprowadź subdomain.hosttwo.com jako wartość nagłówka Host. Kliknij OK, aż powrócisz do głównego okna Menedżera usług IIS i powinieneś być gotowy. Otwórz przeglądarkę i przejdź do http://subdomain.hostone.com, a zobaczysz miejsce na http://subdomain.hosttwo.com pojawiać, choć adres URL wskazuje http://subdomain.hostone.com

nadzieję, że pomoże ...

+0

Jestem dość pewny, że funkcja header() PHP jest pisana małymi literami. –

+2

@UncleNinja: Podczas gdy PHP definiuje funkcję header() jako małą literę (i tak powinno być używane w kodzie), język PHP nie rozróżnia wielkości liter pod tym względem, więc 'Header()' nadal będzie działał poprawnie . – MrWhite

+1

@ W3D dzięki, nie wiedziałem o tym! –

2

Te dni, wielu właścicieli witryn korzystania z usług CDN która pobiera dane z serwera CDN. Jeśli to twoja sprawa to jesteś w lewo z dwóch opcji:

  1. Tworzenie subdomeny i edycji DNS dodając rekord CNAME

  2. Nie utworzyć subdomenę, ale tylko utworzyć rekord CNAME skierowany z powrotem do Twój tymczasowy adres URL DNS.

Rozwiązanie to zakłada się tylko do ciągnięcia kod z CDN, który pokaże, że to pobieranie danych z cdn.sitename.com ale praktycznie jej ciągnięcie od gospodarza CDN.

Powiązane problemy