Dlaczego podczas przenoszenia witryny WP przekierowuje wp-admin do starej strony?

16

Jestem w trakcie przenoszenia witryny WP z jednego hosta na inny. Skopiowałem bazę danych i wszystkie pliki, utworzyłem nową bazę danych i zaimportowałem starą. Następnie zmieniłem plik wp-config. Strona główna pokazuje się dobrze, ale kiedy próbuję uzyskać dostęp do / wp-admin, zabiera mnie z powrotem do starej strony.

Nowa witryna to serwer deweloperów, na którym planuję wprowadzić zmiany stylu, zanim uruchomię witrynę.

Czego mi brakuje w tym przejściu? Jak sprawić, by strona poprawnie reagowała na adres URL dewelopera?

fmz
źródło

Odpowiedzi:

22

Jeśli jest to pojedyncza instalacja WordPress, w starej domenie jest kilka pozycji bazy danych. W szczególności siteurli homewewnątrz wp_options.

To powiedziawszy, jeśli adres URL dewelopera jest tymczasowy, możesz również ustawić następujące dwie stałe wp-config.php:

define('WP_HOME', 'http://' . $_SERVER['SERVER_NAME']);
define('WP_SITEURL', WP_HOME . '/');

Pod warunkiem, że WordPress jest zainstalowany w katalogu głównym witryny.

NightHawk
źródło
Będziesz także musiał zaktualizować guiddla każdego wp_postsw przypadku jakichkolwiek załączników, używając czegoś takiegoUPDATE wp_posts SET guid = REPLACE('<old_url>','<new_url>', guid)
Cyclonecode
2
Identyfikator GUID nie powinien być zmieniany. Przeczytaj więcej tutaj: codex.wordpress.org/Changing_The_Site_URL#Important_GUID_Note
NightHawk
4

To nie jest duży problem. Twoja baza danych zawiera wszystkie poprzednie łącza, których nie można automatycznie przekonwertować. Istnieją dwa rodzaje rozwiązań:

  1. W wp-config.php dodatek ten kod:

    zdefiniuj („WP_HOME”, „http: //”. $ _SERVER [„SERVER_NAME”]);
    Zdefiniuj („WP_SITEURL”, WP_HOME. '/');
  2. Zmień następujący kod SQL, zastępując „oldurl” poprzednim linkiem i „newurl” bieżącym linkiem:

UPDATE wp_posts SET guid = replace(guid, 'oldurl','newUrl'); 

UPDATE wp_posts SET post_content = replace(post_content, 'oldurl', 'newUrl'); 

UPDATE wp_links SET link_url = replace(link_url, 'oldurl', 'newUrl'); 

UPDATE wp_links SET link_image = replace(link_image, 'oldurl', 'newUrl'); 

UPDATE wp_postmeta SET meta_value = replace(meta_value, 'oldurl', 'newUrl'); 

UPDATE wp_usermeta SET meta_value = replace(meta_value, 'oldurl', 'newUrl'); 

UPDATE wp_options SET option_value = replace(option_value, 'oldurl', 'newUrl') WHERE option_name = 'home' OR option_name = 'siteurl';

Uruchom te zapytania SQL w bazie danych, zmieniając prefiks, jeśli masz coś innego niż wp_.

Aakash Bhagat
źródło
2

Po prostu zmiana adresu URL witryny w konfiguracji prawdopodobnie nie zaktualizuje wszystkich wewnętrznych elementów, aby utworzyć działającą witrynę deweloperską dla Ciebie (chyba że witryna jest dość prosta). Będziesz mieć problemy z brakiem szeregowania danych i linkami w postach wskazujących na starą stronę.

Lepiej byłoby użyć narzędzia migracji, takiego jak Backup Buddy lub Duplicator, aby utworzyć pełną kopię witryny, którą można ponownie wdrożyć w nowej lokalizacji z nowym adresem URL. Dzięki temu nadal będziesz mieć działające linki w postach, dowolne niestandardowe linki menu itp. Użycie jednego z nich uprości również wprowadzanie zmian. Po prostu spakuj wszystko i ponownie zainstaluj na stronie produkcyjnej, gdy skończysz.

Jeśli nie chcesz ponownie tracić czasu na pobieranie / przesyłanie wszystkiego, możesz po prostu przeprowadzić migrację bazy danych, używając czegoś takiego jak WP Migrate DB. Zainstaluj go na swojej stronie produkcyjnej, wyeksportuj bazę danych z nowym adresem URL i zaimportuj zmigrowaną bazę danych do swojego dewelopera za pomocą phpMyAdmin lub podobnego. Wszelkie zakodowane linki w Twoim motywie nadal będą wymagały aktualizacji, a Twój .htaccess będzie wymagał aktualizacji, jeśli instalujesz w podfolderze.

Zmień linię RewriteBase na:

RewriteBase /yourfolder/

I linia przekierowująca do twojego index.php do:

RewriteRule . /yourfolder/index.php [L]
Sean Michaud
źródło
0

Musisz zmienić adres witryny (URL) i adres WordPress (URI) za pomocą panelu administracyjnego przed przeniesieniem witryny do innego adresu URL.

W twoim przypadku nie możesz tego zrobić na aktywnej stronie, więc możesz wypróbować narzędzie takie jak Wyszukaj i zamień bazy danych, aby zmienić adres URL z bazy danych witryny dewelopera.

Możesz także odwołać się do Moving WordPress

Laxmana
źródło
0
  1. phpMyAdmin: przejdź do wp_optionszestawu tabel homeurli siteurljako nowy adres URL
  2. Zaloguj się do wp-adminpulpitu nawigacyjnego, aby setting->general zmienić adres WordPress (URL) i adres strony (URL)
użytkownik8724101
źródło