Informacje o przekierowaniach w pliku .htaccess
Kiedy potrzebujesz przekierowań
Za każdym razem, gdy zmienia się adres URL. Przeprojektowanie, zmiana struktury, przejście na HTTPS, połączenie jednej strony z inną — każda z tych sytuacji pozostawia stary adres, który nadal mają użytkownicy i wyszukiwarki.
Przekierowanie kieruje użytkowników na nową stronę i, jeśli zostanie prawidłowo skonfigurowane, przekazuje jej sygnały rankingowe zgromadzone przez stary adres URL. Jeśli go pominiesz, sygnały te przepadną — podobnie jak osoby korzystające ze starego linku.
Ten generator przekształca listę starych i nowych adresów URL w reguły pliku .htaccess, które to umożliwiają.
Którego kodu 3xx użyć
Kod 301 oznacza, że przeniesienie jest trwałe. Wyszukiwarki przekazują sygnały starego adresu URL na nowy i z czasem usuwają stary adres ze swojego indeksu. W niemal każdym przypadku właśnie tego potrzebujesz.
Przekierowanie 302 oznacza, że przeniesienie jest tymczasowe. Stary adres URL pozostaje w indeksie i zachowuje swoje sygnały, co jest właściwe w przypadku strony konserwacyjnej lub sezonowej promocji, ale nie w żadnym innym przypadku. Przekierowanie 302 pozostawione przez wiele miesięcy to jeden z mniej oczywistych sposobów na utratę pozycji w wynikach wyszukiwania, ponieważ nic nie wskazuje na to, że coś jest nie tak.
Kody 307 i 308 są nowszymi odpowiednikami kodów 302 i 301. Wyszukiwarki traktują je w ten sam sposób, a różnica ma charakter techniczny: zachowują oryginalną metodę żądania, więc żądanie POST z formularza dociera do nowego adresu URL jako POST, zamiast zostać przekształcone w GET. Ma to znaczenie w przypadku interfejsów API i obsługi formularzy, ale rzadko w przypadku zwykłych stron. Apache wymaga wersji 2.4 lub nowszej, aby obsługiwać kod 308.
Pozostała część zakresu 3xx nie służy do tego. Kody 300 i 305 są w praktyce nieużywane, 304 jest odpowiedzią dotyczącą buforowania, a nie przekierowaniem, natomiast 303 służy do przekierowania przeglądarki na stronę potwierdzenia po przesłaniu formularza — żaden z nich nie powinien znajdować się w pliku przekierowań.
Jak faktycznie działa dopasowywanie
Przekierowanie dopasowuje początek ścieżki, a nie całą ścieżkę. Reguła dla /blog obejmuje również /blog/post i /blog/category/thing, mimo że nie zostały one osobno wymienione. Jest to przydatne, gdy już się o tym wie, ale zaskakujące, gdy nie jest to oczywiste, ponieważ szeroka reguła umieszczona wyżej sprawia, że bardziej szczegółowa reguła staje się nieosiągalna.
To samo działanie umożliwia przeniesienie całej domeny: pojedyncza reguła ze starym adresem ustawionym na / obejmuje każdą stronę w witrynie. Wskaż katalog główny nowej domeny, a każdy adres URL zostanie przekierowany.
Dyrektywa Redirect nie rozumie wzorców. Nie ma tu symboli wieloznacznych, więc /* jest odczytywane jako dosłowna ścieżka i niczego nie dopasowuje — dopasowanie prefiksowe już pełni tę funkcję. Gdy rzeczywiście potrzebujesz wzorca, RedirectMatch przyjmuje zamiast tego wyrażenie regularne i warto po niego sięgać tylko wtedy, gdy prefiks nie wystarczy.
Typowe błędy
- Przekierowywanie wszystkiego na stronę główną, co jest odczytywane jako miękki błąd 404 i nikomu nie pomaga.
- Łańcuchy przekierowań, w których A prowadzi do B, a B do C. Skieruj każdy stary adres URL bezpośrednio do miejsca docelowego.
- Pętle przekierowań, w których dwie reguły przesyłają ruch tam i z powrotem, dopóki przeglądarka się nie podda.
- Przekierowanie do strony, która nie jest odpowiednim zamiennikiem starej strony.
- Edycja pliku .htaccess bez kopii zapasowej. Błąd składni może spowodować niedostępność całej witryny.
Gdzie umieścić te reguły
Plik .htaccess to plik konfiguracyjny serwera Apache znajdujący się w katalogu głównym witryny. Odczytuje go również LiteSpeed; Nginx go nie obsługuje i wymaga własnej składni w konfiguracji serwera.
Reguły są stosowane w kolejności, dlatego umieszczaj konkretne przekierowania przed ogólnymi. Przed wprowadzeniem zmian zachowaj kopię działającego pliku, ponieważ błąd w tym miejscu spowoduje zwrócenie błędu 500 dla każdej strony, zamiast zakończyć działanie bez komunikatu.
W przypadku kilku adresów URL ten plik jest właściwym miejscem. Przy setkach adresów łatwiejsza w utrzymaniu niż plik, którego nikt nie chce otwierać, będzie wtyczka lub reguła oparta na bazie danych.
Korzystanie z generatora przekierowań .htaccess
Wybierz typ przekierowania, dodaj wiersz dla każdego przeniesionego adresu URL, a następnie pobierz reguły lub skopiuj je. Stare ścieżki powinny być względne względem Twojej domeny, natomiast adresy docelowe powinny być pełnymi adresami URL.
Po zakończeniu przetestuj ręcznie kilka z nich. Przekierowanie, które działa w przeglądarce, ale zwraca nieprawidłowy kod statusu, nadal powoduje utratę sygnałów SEO, które miało przekazywać.
Co dalej
Sprawdź, czy reguły działają zgodnie z oczekiwaniami za pomocą naszego narzędzia
narzędzie do sprawdzania przekierowań, które śledzi każdy etap przekierowania i wyświetla kody statusu. Upewnij się, że strona docelowa zwraca status
kod statusu 200, a następnie utwórz resztę konfiguracji za pomocą generatora
.htaccess.