1. Home
  2. Pomoc
  3. WordPress
  4. Strona WordPress ucieka na zły adres: jak poprawić adres w bazie danych (home i siteurl)

Strona WordPress ucieka na zły adres: jak poprawić adres w bazie danych (home i siteurl)

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ć.

Najpierw snapshot

Każda z poniższych metod zmienia bazę danych, a zmiany trudno cofnąć ręcznie. Zanim zaczniesz, wykonaj snapshot bazy: zakładka Snapshot, nowy snapshot typu baza danych (lub pliki+baza). W razie problemów przywrócisz go samodzielnie.

Metoda 1 (zalecana): WP-CLI

Najczystszy sposób to poprawić adresy poleceniem WP-CLI prosto na serwerze.

  1. 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.

  2. Przejdź do katalogu strony: cd public_html

  3. 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'
    
  4. 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.

  1. Zaloguj się do panelu WordPress, przejdź do Wtyczki → Dodaj nową i wyszukaj Better Search Replace (autor: WP Engine). Zainstaluj i aktywuj.
  2. Otwórz Narzędzia → Better Search Replace.
  3. W polu „Szukaj" wpisz stary adres (na przykład http://staraadres.pl), a w polu „Zamień na" nowy (https://twojadomena.pl).
  4. Zaznacz wszystkie tabele.
  5. Najpierw uruchom z opcją testu (dry run), żeby zobaczyć, ile zmian zostanie wykonanych. Potem uruchom ponownie już bez testu.
  6. 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.

  1. Połącz się ze stroną przez SFTP (port 2233), w katalogu public_html otwórz wp-config.php.

  2. 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' );
    
  3. Zapisz plik. Odzyskasz w ten sposób dostęp do wp-admina.

To rozwiązanie tymczasowe

Stałe WP_HOME i WP_SITEURL nadpisują adres tylko na czas, byś mógł wejść do panelu i naprawić bazę. Gdy poprawisz adresy w bazie (Metoda 1 lub 2), usuń te dwie linie z wp-config.php. Zostawione na stałe maskują prawdziwy stan bazy i utrudniają późniejsze zmiany domeny.

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.

Czy był pomocny?

Podobne

Potrzebujesz pomocy?
Nie możesz znaleźć odpowiedzi, której szukasz? Nie martw się, jesteśmy tutaj, aby pomóc!
Napisz do nas