Po migracji albo zmianie domeny WordPress potrafi „uciekać" na stary adres: klikasz w link, a strona przenosi Cię pod niewłaściwą domenę, albo panel wp-admin wpada w pętlę przekierowań. Odpowiadają za to dwa adresy zapisane w bazie danych. Najlepiej poprawić je właśnie w bazie, a nie zaszywać na sztywno w plikach. Poniżej pokazujemy jak.
Czym są te dwa adresy
WordPress trzyma dwa adresy swojej strony:
- Adres WordPressa (siteurl) to miejsce, z którego ładują się pliki, skrypty i style panelu.
- Adres witryny (home) to adres, pod którym odwiedzający oglądają stronę.
Zwykle oba są takie same, na przykład https://twojadomena.pl. Gdy po migracji zostaje w nich stary adres (adres poprzedniego hostingu albo wersja bez https), strona zaczyna przekierowywać w złe miejsce. Oba adresy są przechowywane w bazie danych i to w niej najlepiej je poprawić.
Metoda 1 (zalecana): WP-CLI
Najczystszy sposób to poprawić adresy poleceniem WP-CLI prosto na serwerze.
-
Połącz się z serwerem przez SSH (port 2233). Dane logowania znajdziesz w zakładce Informacje, a szczegóły w poradniku Dane dostępowe SFTP/SSH i MySQL: gdzie je znaleźć i jak zresetować hasła.
-
Przejdź do katalogu strony:
cd public_html -
Ustaw oba adresy na właściwy (podmień na swój adres):
wp option update home 'https://twojadomena.pl' wp option update siteurl 'https://twojadomena.pl' -
Jeśli po migracji stary adres został też w treści, linkach i ścieżkach do obrazków, zamień go w całej bazie (podmień oba adresy na własne):
wp search-replace 'http://staraadres.pl' 'https://twojadomena.pl' --skip-columns=guid
Ten sam wzorzec komendy stosujemy przy przejściu na HTTPS. Opisujemy go szerzej w poradniku Jak włączyć HTTPS dla WordPress.
Metoda 2: wtyczka Better Search Replace
Jeśli wolisz pracować z poziomu wp-admina, użyj wtyczki, tak samo jak przy włączaniu HTTPS.
- Zaloguj się do panelu WordPress, przejdź do Wtyczki → Dodaj nową i wyszukaj Better Search Replace (autor: WP Engine). Zainstaluj i aktywuj.
- Otwórz Narzędzia → Better Search Replace.
- W polu „Szukaj" wpisz stary adres (na przykład
http://staraadres.pl), a w polu „Zamień na" nowy (https://twojadomena.pl). - Zaznacz wszystkie tabele.
- Najpierw uruchom z opcją testu (dry run), żeby zobaczyć, ile zmian zostanie wykonanych. Potem uruchom ponownie już bez testu.
- Sprawdź stronę: linki, obrazki i to, czy adres już się nie zmienia.
Po wszystkim możesz wtyczkę wyłączyć i usunąć, bo nie jest potrzebna na co dzień. Pełny opis tej metody znajdziesz w poradniku Jak włączyć HTTPS dla WordPress.
Awaryjnie: gdy nie możesz wejść do wp-admina
Czasem zły adres blokuje logowanie: panel wpada w pętlę przekierowań i nie da się otworzyć wp-admina, żeby użyć wtyczki. Wtedy możesz tymczasowo wymusić właściwy adres, dopisując dwie stałe w pliku wp-config.php.
-
Połącz się ze stroną przez SFTP (port 2233), w katalogu
public_htmlotwórzwp-config.php. -
Nad linią
/* That's all, stop editing! */dodaj (podmień na swój adres):define( 'WP_HOME', 'https://twojadomena.pl' ); define( 'WP_SITEURL', 'https://twojadomena.pl' ); -
Zapisz plik. Odzyskasz w ten sposób dostęp do wp-admina.
Najczęstsze problemy
Panel wp-admin wpada w pętlę przekierowań. Prawie zawsze winny jest zły Adres WordPressa (siteurl). Jeśli nie możesz się zalogować, użyj sposobu awaryjnego, żeby wejść do panelu, a potem popraw adresy w bazie i usuń stałe z wp-config.php.
Strona ładuje się bez stylów i wygląda „goło". Style ładują się ze starego adresu siteurl. Ustaw oba adresy na właściwy Metodą 1 lub 2.
Po zmianie domeny część linków dalej prowadzi na stary adres. Sama zmiana home i siteurl nie rusza treści w bazie. Wykonaj pełną zamianę (wp search-replace albo Better Search Replace na wszystkich tabelach), pamiętając o wcześniejszym snapshocie.