Przekieruj żądania inne niż www na www na Amazon Route 53


44

Chcę przekierować wszystkie żądania od example.comdo www.example.com.

Najlepiej, jeśli tak się stanie na poziomie DNS. Próbowałem użyć rekordów PTR, ale to po prostu się nie udaje, zwracając 404.

wwww.example.com to ALIAS dla modułu elastycznego równoważenia obciążenia.

Jaki jest najprostszy sposób na osiągnięcie tego?


Czego próbowałeś z rekordami PTR? Jestem ciekawy.
TRiG

@flavian plakat poprosił o przepisanie DNS, a nie o przepisanie adresu URL, a konkretnie powiedział, że nie obchodzi go, jak wygląda adres URL.
pauska

4
@ flawian na litość, powiedziałeś, że chcesz zrobić przekierowanie w DNS. Moja odpowiedź wyjaśnia, jak to zrobić w DNS. Jeśli chcesz przekierować adres URL, musisz przepisać adres URL. Nie ma to nic wspólnego z DNS.
pauska

Czy jest jakiś konkretny powód tego? Zrobiłbym to na odwrót .
nyuszika7h

SAN w EV SSL.
Flavian

Odpowiedzi:


50

Jeśli już korzystasz z Route 53, możesz użyć ich zastrzeżonego aliasu „record”, aby rozwiązać ten problem. W przypadku standardowego systemu DNS nie można tego zrobić w ogóle, a witryna internetowa musi wysłać przekierowanie 301. Oczywiście nadal musisz wysłać przekierowania 301 lub poradzić sobie z faktem, że niektóre żądania pojawią się bez www (chociaż powinieneś wysłać 301 z powodów SEO).

Prawdopodobnie najłatwiejszym sposobem na to jest skonfigurowanie segmentu S3 o nazwie nagiej domeny i skonfigurowanie właściwości segmentu w celu przekierowania z example.com do www.example.com, a następnie w Route 53 utwórz alias dla nagich nazwa domeny wskazująca ten segment S3.

Z komentarzy

Aby poprawić odpowiedź, oto co zrobiliśmy, aby to zadziałało:

  • Skonfiguruj segment - nie ma znaczenia, jak się nazywa i musi zezwalać publicznie.
  • W wiadrze kliknij właściwości i kliknij statyczny hosting witryny. Kliknij przekieruj wszystkie żądania na inną nazwę hosta i wejdź na stronę, do której chcesz przekierowywać ruch.
  • Skopiuj punkt końcowy nazwy segmentu i przejdź do strefy hostowanej w konsoli Route53 i dodaj CNAME z Alias ​​No do adresu URL, z którego chcesz zostać przekierowany, i wklej punkt końcowy segmentu jako jego wartość.

@ michael-hampton popraw mnie, jeśli się mylę, ale segment S3 przekierowuje tylko nagą nazwę domeny bez ścieżki, prawda? Poprawnie dodałem segment S3 dla mojej domeny, ale przekierowuje on tylko domenę typu naga i nie przekierowuje niczego, co ma ścieżkę. Zgaduję, że mod przepisanie jest właściwą drogą?
John Harding,

@JohnHarding I dunno. Nie korzystam już z większości usług Amazon AWS, w tym S3.
Michael Hampton

2
Aby poprawić odpowiedź, oto, co zrobiliśmy, aby to działało: - Skonfiguruj segment - nie ma znaczenia, jak się nazywa i musi zezwalać publicznie. - W wiadrze kliknij właściwości i kliknij statyczny hosting strony. Kliknij przekieruj wszystkie żądania na inną nazwę hosta i wejdź na stronę, do której chcesz przekierowywać ruch. - Skopiuj punkt końcowy nazwy segmentu i przejdź do strefy hostowanej w konsoli Route53 i dodaj CNAME z aliasem No do adresu URL, z którego chcesz zostać przekierowany, i wklej punkt końcowy segmentu jako jego wartość.
NathanQ

4
Działa to tylko w przypadku żądań HTTP, ponieważ S3 nie obsługuje protokołu https. Żądania https://example.comnie powiedzie się.
Harry King,

aby https://example.comprzekierować do https://www.example.comciebie, niestety musisz skonfigurować inną chmurę wskazującą na wiadrze ze statycznym przekierowaniem http do www.example.com. Warto wspomnieć, że musisz dodać domenę wierzchołkową do CNAMEpola w konfiguracji
chmury

6

W przypadku aliasu DNS wystarczy dodać rekord CNAME lub A w DNS. Zobacz moją odpowiedź tutaj: Jak przekierować www na inną niż www w Route53?

Do przepisywania adresów URL (jak w przypadku przekierowywania klientów na inny adres) potrzebujesz jakiejś logiki przepisywania adresów URL wykonanej na serwerze internetowym. Można to zrobić na kilka sposobów i zależy to od używanego serwera. Najpopularniejszym jest użycie mod_rewrite z apache. Ta strona jest pełna pytań mod_rewrite, kilka wyszukiwań powinno uzyskać to, czego chcesz.


Użyłem CNAME na moim wewnętrznym bind9 srv dokładnie godzinę temu, ale wyniki nie są takie same jak w przypadku przepisywania adresów URL. Po wpisaniu CNAME w pasku adresu przeglądarki otrzymujesz dokładnie ten adres URL, nie zmienia się on na adres URL, na który wskazuje CNAME. Używam teraz mod_rewrite Apache, wysyłając 301s, gdy nie ma www. prefiks.
Kitet

3
Odpowiedź link do jest do wysyłania www.domain.comdo domain.com. To pytanie jest przeciwne. Czy Twoje rozwiązanie dotyczące używania CNAMElub Arejestrowania działa w przypadku wysyłania domain.comdo www.domain.com?
Carl G,

4

Możesz to zrobić za pomocą wiadra s3. Kroki są wklejone poniżej:

Krok 1. Utwórz wiadro s3.

Krok 2. Ustaw wiadro jako statyczny hosting witryny z przekierowaniem.

Krok 3. Edytuj wpis AWS Route 53 dla domeny innej niż www.

A - Adres IPv4 -> Alias ​​Tak -> Cel aliasu (Wybierz punkt końcowy segmentu s3 z listy rozwijanej).

Krok 4. Zapisz zestaw rekordów.


0

AWS Route53 nie zapewnia obecnie obsługi przekierowania tak zwanego rekordu APEX (domeny głównej) do innej nazwy domeny, chociaż pracują nad rozwiązaniem.

Osiągnąłem to, tworząc rekord A (alias), który wskazuje moją domenę główną (devopsfolks.com) na adres IP mojego rozwiązania hostowanego na WP ... A odpowiedź brzmi: tak, jeśli IP zmieni się, będziesz potrzebować zmienić alias. Jednak dostawca zagwarantował mi, że adres IP jest stały, chyba że będzie musiał wykonać pewne operacje odzyskiwania po awarii i zmienić sprzęt. W takim przypadku połączy serwer proxy w celu wykonania przekierowania, dając klientom 45 dni na zmianę mapowania.


5
A nie oznacza aliasu, oznacza adres. Możesz łatwo wykonać przekierowanie za pomocą Trasy 53, korzystając z metody segmentu S3 pokazanej powyżej.
Michael Hampton

„Pracują nad rozwiązaniem” czy pojawiła się jakaś aktualizacja?
Tom
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.