Jak naprawić moje podstawowe adresy URL, aby uzyskać dostęp do mojej witryny Magento?

36
  • Zmieniłem podstawowe adresy URL, a teraz moja strona jest niedostępna
  • Przeniosłem wszystko na nowy serwer, nie zmieniłem base_url, a moja strona jest niedostępna

Jak mogę zmienić lub przywrócić base_url moje ustawienia BaseURL?

Fiasco Labs
źródło

Odpowiedzi:

63

Objaw: Zmieniłem podstawowe adresy URL, a teraz moja strona jest niedostępna lub przeniosłem wszystko na nowy serwer, nie zmieniłem base_urli moja strona jest niedostępna.

Jak zmienić lub przywrócić ustawienia base_url za pomocą phpMyAdmin

Instrukcje dotyczą prostej witryny „jednego sklepu”, w której „domyślny widok sklepu” jest ustawiony na dziedziczenie jego konfiguracji z „domyślnej konfiguracji”. Dla każdego niezaznaczonego Use Websitepola wyboru będzie dodatkowe wystąpienie niżej wymienionych wierszy tabeli .

  1. Otwórz swój core_config_datastół w phpMyAdmin.

  2. Sortuj tabelę według pathkolumn i znajdź następujące wiersze dla swojej niezabezpieczonej sekcji , powinny one wyglądać następująco:

Kolumny

PATH                         VALUE
web/unsecure/base_url        http://www.example.com/
web/unsecure/base_link_url   {{unsecure_base_url}}
web/unsecure/base_skin_url   {{unsecure_base_url}}skin/
web/unsecure/base_media_url  {{unsecure_base_url}}media/
web/unsecure/base_js_url     {{unsecure_base_url}}js/
  1. Zamień http://www.example.com/na odpowiedni adres URL domeny (konieczny jest ukośnik końcowy), a jeśli masz zainstalowany w podfolderze, dodaj go /po nim.

  2. Znajdź następujące wiersze dla bezpiecznej sekcji , powinny one wyglądać następująco:

Kolumny

PATH                        VALUE
web/secure/base_url         https://www.example.com/
web/secure/base_link_url    {{secure_base_url}}
web/secure/base_skin_url    {{secure_base_url}}skin/
web/secure/base_media_url   {{secure_base_url}}media/
web/secure/base_js_url      {{secure_base_url}}js/
  1. Zamień https://www.example.com/na odpowiedni adres URL domeny (konieczny jest ukośnik końcowy), a jeśli masz zainstalowany w podfolderze, dodaj go /po nim. Jeśli nie otrzymałeś jeszcze certyfikatu bezpieczeństwa i nie włączyłeś TLS / SSL, użyj httpzamiasthttps

  2. Wyczyść zawartość var/cache, var/sessionkatalogi po zmianie base_urls.

Czyszczenie pamięci podręcznej i sesji jest konieczne, ponieważ konfiguracja jest buforowana, a jej wyczyszczenie wymusza ponowne odczytanie danych konfiguracyjnych z core_config_data ponowne tabeli i ponowne ustanowienie sesji z odpowiednimi informacjami.

UWAGA: Jeśli ustawiłeś base_urlpoprawnie dla web/unsecure/base_urli web/secure/base_urlnie musisz bałaganić, zmieniając makra {{UNSECURE_BASE_URL}}i {{SECURE_BASE_URL}}w pozostałych wpisach.

Jak zmienić ustawienia base_url za pomocą mysql z wiersza poleceń

  1. Zaloguj się do bazy danych MySQL, zamień $ USER na nazwę użytkownika bazy danych i $ DBASE na nazwę bazy danych. Pojawi się monit o podanie hasła:

mysql -u $USER -p $DBASE

  1. Poniżej znajdują się polecenia SQL służące do zmiany wartości base_url. Zastąp niezabezpieczony http://www.example.com/i bezpieczny https://www.example.com/(jeśli masz włączony protokół SSL / TLS, w przeciwnym razie https powinien być http) odpowiednim adresem URL domeny (konieczne ukośnik) i jeśli masz zainstalowany w podfolderze, dodaj go /po nim.

Polecenia SQL

UPDATE core_config_data SET value = 'http://www.example.com/' WHERE path LIKE 'web/unsecure/base_url';
UPDATE core_config_data SET value = 'https://www.example.com/' WHERE path LIKE 'web/secure/base_url';
  1. Sprawdź ustawienia base_url w następujący sposób:

Polecenia SQL

SELECT path,value FROM core_config_data WHERE path LIKE 'web/unsecure/base%';
SELECT path,value FROM core_config_data WHERE path LIKE 'web/secure/base%';
  1. Wyczyść zawartość var/cache, var/sessionkatalogi po zmianie base_urls. Czyszczenie pamięci podręcznej i sesji jest konieczne, ponieważ konfiguracja jest buforowana, a wyczyszczenie jej wymusza core_config_dataponowne odczytanie danych konfiguracyjnych z tabeli i ponowne ustanowienie sesji z odpowiednimi informacjami.
Fiasco Labs
źródło
1
Uwaga: W skrajnych przypadkach, gdy twoje uprawnienia do var/katalogu są pomieszane, Magento zapisze pamięć podręczną Magento w /tmpkatalogu systemowym, jak tutaj udokumentowano, a wyczyszczenie pamięci podręcznej nie spowoduje wyczyszczenia zapisanych w pamięci podręcznej pozycji konfiguracji od core_config_datamomentu ponownego uruchomienia serwera lub osoby z wystarczającymi uprawnieniami może usunąć zgubioną pamięć podręczną Magento.
Fiasco Labs
Aby znaleźć ten źle umieszczony katalog pamięci podręcznej, jeśli możesz zainstalować n98-magerun, użyj polecenia, n98-magerun.phar sys:infoaby uzyskać podstawowe informacje o systemie z jednym elementem będącym Cache Directorylokalizacją.
Fiasco Labs
to działa dla mnie idealnie.
Amol Bhandari SJ
13

W Magento2 istnieje również sposób, aby to zrobić bezpośrednio za pomocą Magento, używając poniższych poleceń, zamiast konieczności przechodzenia przez SQL, co uważam za nieco szybsze.

W katalogu głównym Magento uruchom następujące polecenia:

  1. Ustaw niezabezpieczony adres URL

    bin/magento setup:store-config:set --base-url="http://www.magento2.com/"
  2. Ustaw bezpieczny adres URL

    bin/magento setup:store-config:set --base-url-secure="https://www.magento2.com/"
  3. Wyczyść pamięć podręczną

    bin/magento cache:flush
harri
źródło
1
Po tym możesz też potrzebować edytować base_link_url.
user3442612,
dla każdego, kto przekierował cały ruch przez https, ustawiając podstawowy adres URL jako https, rozwiąże ten problem (np. podczas instalacji certyfikatu SSL z Certbotem)
Antonio Araujo