7 min czytaniaPoradniki

Jak przekierować adres URL: sześć sposobów i kiedy który zastosować

Przekierowanie to odpowiedź HTTP, więc prawdziwe pytanie brzmi, która warstwa odpowiada na żądanie. Rejestrator, serwer, CMS, platforma, strona klienta albo zarządzany krótki link.

Marius Voß
DevRel · edge infra
Jak przekierować adres URL przedstawione jako żądanie docierające do jednej z sześciu warstw, z których każda zwraca 301 z nagłówkiem Location

Przekierowanie to odpowiedź HTTP: status 301 albo 302 z nagłówkiem Location, który mówi przeglądarce, dokąd pójść zamiast tego. To wszystko, czym jest to na łączu, co oznacza, że pytanie tak naprawdę nie brzmi, jak przekierować adres URL, tylko która warstwa przed twoją witryną powinna na nie odpowiadać.

Sześć warstw może wykonać to zadanie i nie są one wymienne. Różnią się tym, kto obsługuje odpowiedź, czy ścieżka i ciąg zapytania przetrwają podróż, jak szybko możesz zmienić zdanie oraz jak dużą częścią konfiguracji zarządzasz. Ten przewodnik przechodzi przez wszystkie sześć, tabelę, która pomaga wybrać między nimi, oraz dwa sprawdziany, które odróżniają działające przekierowanie od takiego, które po cichu zjada parametry twojej kampanii. Jeśli chodzi o same kody statusu, rodzaje przekierowań URL to materiał referencyjny leżący u podstaw tego wpisu.

Gdzie naprawdę mieszka przekierowanie

Zacznijmy od mitu, bo psuje więcej popołudni niż jakikolwiek inny: DNS nie może przekierować adresu URL. Rekord DNS mapuje nazwę hosta na adres. Nigdy nie widzi ścieżki, nigdy nie widzi ciągu zapytania i nie ma mechanizmu, żeby powiedzieć "idź gdzie indziej zamiast tego". Rekord A albo CNAME wskazuje; nie przekierowuje.

Więc gdy twój rejestrator oferuje "przekierowanie adresu URL", w rzeczywistości wskazuje nazwę hosta na mały serwer www, który prowadzi, a ten zwraca przekierowanie HTTP w twoim imieniu. Przydatne i całkowicie legalne, ale to serwer www wykonuje pracę, nie DNS. Gdy spojrzysz na to w ten sposób, sześć metod poniżej przestaje wyglądać jak alternatywy, a zaczyna wyglądać jak jedno pytanie: która maszyna na ścieżce żądania ma odpowiadać?

Żądanie rozwiązywane przez DNS do serwera, z przekierowaniem wystawionym jako odpowiedź HTTP 301 i DNS oznaczonym jako niezdolne do przekierowania

Sześć miejsc, w których możesz umieścić przekierowanie

Każde z nich kończy się tą samą odpowiedzią na łączu. Różni się koszt konfiguracji, kto nad nią panuje i co dzieje się ze wszystkim, co następuje po nazwie domeny.

przekierowanie domeny u rejestratora

Najszybsza opcja i najbardziej toporna. W panelu kontrolnym rejestratora wskazujesz domenę na cel i wybierasz przekierowanie trwałe albo tymczasowe. Dobra dla domeny kupionej obronnie, rebrandingu, w którym stara nazwa ma po prostu przekazać pałeczkę, albo krótkiej domeny kampanijnej.

Haczyk polega na tym, co robi z resztą adresu URL: większość przekierowań u rejestratora spłaszcza każde żądanie do jednego skonfigurowanego celu, więc głęboki link trafia na stronę główną. Niektórzy oferują tryb zachowujący ścieżkę; sprawdź to, zanim zaczniesz na nim polegać.

reguła w twoim serwerze www

Jeśli prowadzisz nginx albo Apache, przekierowanie należy właśnie tutaj, bo zyskujesz dokładną kontrolę nad dopasowaniem i zachowaniem danych. Dokumentacja Apache o przemapowywaniu adresów URL za pomocą reguł rewrite omawia wzorce, a materiał referencyjny modułu rewrite nginksa omawia return 301 i rewrite ... permanent, co jest szybką ścieżką dla prostego przeniesienia.

Reguły serwera to właściwe narzędzie do wymuszania kanonicznego hosta i HTTPS, przepisywania ścieżek po restrukturyzacji oraz wszystkiego, co warunkowe. To także miejsce, w którym reguły przekierowań po cichu narastają przez lata, więc traktuj ten plik jako coś do przycinania, a nie tylko dopisywania.

reguła na twojej platformie hostingowej

Większość nowoczesnych hostingów siedzi przed origin i oferuje własną warstwę przekierowań: plik _redirects, blok konfiguracji, interfejs reguł w panelu. Są one oceniane, zanim uruchomi się twoja aplikacja, co czyni je szybkimi i bezpiecznymi, i zwykle są najlepszym miejscem na zbiorcze przekierowania po migracji witryny, bo żyją w systemie kontroli wersji razem z resztą projektu.

wtyczka albo ustawienie w twoim CMS-ie

Każdy poważny CMS ma menedżera przekierowań, i dla zespołu contentowego to właściwa odpowiedź: bez wdrożenia, bez dostępu do serwera, ze śladem audytowym, i to osoba rozumiejąca treść podejmuje decyzję o mapowaniu. Kompromisem jest to, że żądanie musi dotrzeć do aplikacji, zanim przekierowanie zostanie wystawione, więc jest wolniejsze niż warstwy powyżej i przestaje działać, gdy aplikacja nie działa.

meta refresh albo JavaScript na stronie

Ostateczność, gdy nie możesz dotknąć niczego po stronie serwera. Strona się wczytuje, a potem wysyła odwiedzającego dalej za pomocą znacznika <meta http-equiv="refresh"> albo skryptu. Działa, ale kosztuje pełne wczytanie strony, zależy od tego, czy klient go wykona, a wyszukiwarki traktują to jako słabszy sygnał niż odpowiedź serwera. Użyj tego, gdy alternatywą jest brak czegokolwiek.

Gdy tym, co przekierowujesz, jest opublikowany link, a nie strona, którą posiadasz, przekierowanie należy do menedżera linków. Cel jest zapisaną wartością, którą możesz zmienić bez dotykania DNS, serwerów czy potoku wdrożeniowego, każdy skok jest logowany, a link wciąż działa po wydrukowaniu albo udostępnieniu. To cała mechanika stojąca za tym, czym jest skracacz adresów URL, i dlatego wydrukowany link kampanii nigdy nie powinien wskazywać wprost na landing page.

Wybór w trzydzieści sekund

Większość decyzji sprowadza się do dwóch kolumn: kto ma dostęp i co musi przetrwać.

MetodaKto to obsługujeŚcieżka i zapytanie zachowaneNajlepsze dla
Przekierowanie u rejestratoraSerwer rejestratoraCzęsto nie, sprawdź najpierwPrzekazanie całej domeny
Reguła serwera wwwTwój originTak, jeśli tak napisanaKanoniczny host, restrukturyzacja
Reguła platformyHost z przoduTakZbiorcze przekierowania migracyjne
Wtyczka CMSTwoja aplikacjaTakZespół contentowy, bez wdrożeń
Meta refresh albo JSPrzeglądarkaTak, ale wolnoBrak jakiegokolwiek dostępu do serwera
Zarządzany krótki linkUsługa linkówTak, z zapisanego adresu URLOpublikowane i wydrukowane linki

Zachowanie ścieżki i ciągu zapytania

To awaria, która przetrwa testowanie, bo każdy testuje rdzeń domeny, a rdzeń zawsze działa.

Skieruj oldsite.com na newsite.com za pomocą zwykłego przekierowania domeny, a potem podążaj za prawdziwym linkiem przychodzącym, oldsite.com/pricing?utm_source=newsletter. Przy spłaszczającym przekierowaniu ten odwiedzający trafia na nową stronę główną, ścieżka znika, a parametry kampanii znikają razem z nią. Nic się nie wywala. Twoja analityka po prostu pokazuje ruch bezpośredni na stronę główną, a newsletter wygląda, jakby nic nie zdziałał.

Zapobiegają temu dwa nawyki. Testuj na głębokim adresie URL niosącym ciąg zapytania, nigdy na samej domenie. A gdy dwie witryny mają różne struktury, mapuj ważne ścieżki wprost, zamiast wysyłać wszystko do rdzenia, co jednocześnie zachowuje wartość SEO starych adresów URL, przypisaną do najbliżej pasującej nowej strony. Ta sama dyscyplina obowiązuje, gdy dziedziczysz czyjeś linki, dlatego migrowanie krótkich linków bez ich psucia to najpierw ćwiczenie z mapowania, a dopiero potem techniczne.

Jeśli mowa o linkach, które sam opublikowałeś, możliwość edytowania celu jest warta więcej niż to wszystko: umieść swoje linki na własnej domenie, a mapowanie staje się polem, które zmieniasz, a nie plikiem konfiguracyjnym, który wdrażasz.

Zweryfikuj, zanim ogłosisz

Jedna komenda to rozstrzyga:

curl -sIL "https://oldsite.com/pricing?utm_source=newsletter" | grep -E '^HTTP|^[Ll]ocation'

Przeczytaj trzy rzeczy w wyniku. Kod statusu powinien być tym, o który ci chodziło, 301 dla trwałego i 302, dopóki coś wciąż się zmienia, a 301 vs 302 omawia, dlaczego ten wybór ma większe znaczenie, niż się wydaje. Nagłówek Location powinien nieść pełną ścieżkę i ciąg zapytania, a nie samą domenę. I powinno być dokładnie jedno przekierowanie: łańcuch trzech albo czterech wciąż się rozwiązuje, ale każdy skok to opóźnienie i kolejna szansa na zgubienie parametrów, a powtórzona nazwa hosta oznacza, że zbudowałeś pętlę przekierowań, a nie przekierowanie.

Jeśli wolisz nie otwierać terminala, nasz test linków śledzi łańcuch i pokazuje status przy każdym skoku.

Głęboki adres URL z parametrami UTM spłaszczony do strony głównej przez przekierowanie domeny, obok przekierowania zachowującego ścieżkę, które zachowuje ścieżkę i ciąg zapytania

Co z tym robią wyszukiwarki

Poprawnie wykonane przekierowanie nie jest ryzykiem dla SEO, a wytyczne są w tej kwestii wyjątkowo jasne. Dokumentacja Google o przekierowaniach i wyszukiwarce traktuje trwałe przekierowanie po stronie serwera jako najsilniejszy sygnał do skonsolidowania adresu URL na jego zamienniku, plasuje przekierowania po stronie klienta niżej i prosi o utrzymywanie krótkich łańcuchów.

Dwa błędy, które faktycznie kosztują, to zwijanie wielu starych adresów URL do strony głównej, co wyrzuca konkretną trafność, jaką miał każdy z nich, oraz pozostawianie łańcucha historycznych skoków po kilku migracjach. Żaden z nich nie jest powodem, by unikać przekierowań; oba są powodem, by je audytować. Ten audyt to ten sam cotygodniowy nawyk co zapobieganie rozpadowi linków, a jeśli przekierowanie znajduje się na własnej krótkiej domenie, własne domeny dla krótkich linków omawiają połowę konfiguracji dotyczącą DNS i certyfikatu.

Wybierz warstwę pasującą do tego, kto odpowiada za zmianę, zachowaj ścieżkę, ogranicz się do jednego skoku, a przekierowanie przestaje być czymś, czym się martwisz.

Przeczytaj serię cornerstone

Ten wpis należy do klastra tutoriali. Jeśli chodzi o kody statusu i ich znaczenie, rodzaje przekierowań URL to mapa, a jak działają skracacze adresów URL omawia, co się dzieje, gdy przekierowanie jest linkiem, a nie stroną.

Powiązane wpisy na blogu

Najczęściej zadawane pytania

Jak przekierować jeden adres URL na inny?

Spraw, żeby cokolwiek obsługuje żądanie, zwróciło 301 albo 302 z nagłówkiem Location wskazującym nowy adres. W praktyce oznacza to wybór warstwy: przekierowanie domeny u rejestratora, regułę w serwerze www albo platformie hostingowej, wtyczkę w CMS-ie albo zarządzany krótki link. Metoda zmienia to, kto obsługuje odpowiedź i czy ścieżka oraz ciąg zapytania przetrwają, a nie to, co otrzymuje przeglądarka.

Czy mogę przekierować adres URL za pomocą DNS?

Nie, i to najczęstsze nieporozumienie w całym temacie. DNS rozwiązuje nazwę hosta na adres; nie ma pojęcia, jaka ścieżka została zażądana, i nie może zwrócić przekierowania. Gdy rejestrator oferuje przekierowanie adresu URL, w rzeczywistości wskazuje nazwę hosta na swój mały serwer www, który wystawia za ciebie przekierowanie HTTP.

Czy przekierowanie zachowuje ścieżkę i ciąg zapytania?

To zależy wyłącznie od wybranej metody. Przekierowanie domeny u rejestratora często spłaszcza wszystko do jednego celu, więc /pricing?utm_source=email trafia na stronę główną, a parametry znikają. Reguła serwera albo platformy może zachować oba elementy, jeśli tak ją napiszesz, a zarządzany krótki link przekierowuje na zapisany cel łącznie z jego ciągiem zapytania. Testuj na głębokim adresie URL, nie tylko na samym rdzeniu domeny.

Czy powinienem użyć przekierowania 301 czy 302?

Użyj 301, gdy przeniesienie jest trwałe i chcesz, żeby wyszukiwarki skonsolidowały sygnały na nowym adresie URL, a 302, dopóki cokolwiek jest jeszcze w ruchu. Praktyczna pułapka polega na tym, że przeglądarki twardo buforują 301, więc trwałe przekierowanie, którego później pożałujesz, wciąż uruchamia się u powracających odwiedzających długo po zmianie serwera. Testuj za pomocą 302, awansuj do 301 dopiero, gdy cel jest już ustalony.

Jak sprawdzić, czy moje przekierowanie działa?

Uruchom curl -sIL na tym adresie URL i przeczytaj linijki statusu oraz nagłówki Location. Chcesz jednego przekierowania, właściwego kodu statusu i celu, którego się spodziewałeś, z nienaruszoną ścieżką i zapytaniem. Łańcuch kilku skoków wciąż działa, ale marnuje czas, a powtórzona nazwa hosta oznacza, że zbudowałeś pętlę, a nie przekierowanie.

Czy przekierowania szkodzą SEO?

Poprawnie wdrożone przekierowanie nie szkodzi. Google traktuje 301 jako silny sygnał do skonsolidowania rankingu na celu, a problemy powodują długie łańcuchy, nie same przekierowania. Trzymaj się jednego skoku, kieruj stare adresy URL na najbliżej pasującą nową stronę zamiast zrzucać wszystko na stronę główną, i unikaj przekierowań po stronie klienta, gdy możliwe jest przekierowanie po stronie serwera.

Wypróbuj Elido

Wklej URL, otrzymaj krótki link

Bez rejestracji. Link działa 30 dni. Zarejestruj się, aby zachować go na zawsze.

Za darmo, bez rejestracji · 2 dziennie

Wypróbuj Elido

Skracarka URL hostowana w UE: własne domeny, głęboka analityka i otwarte API. Darmowy plan - bez karty kredytowej.

Tagi
how to redirect a url
domain forwarding
url forwarding
301 redirect
redirect a domain
path preserving redirect

Czytaj dalej