Как я могу исправить свои базовые URL, чтобы я мог получить доступ к своему сайту Magento?

36
  • Я изменил базовые URL, и теперь мой сайт недоступен
  • Я переместил все на новый сервер, не изменил base_url и мой сайт недоступен

Как мне изменить или восстановить base_url мои настройки BaseURL?

Fiasco Labs
источник

Ответы:

63

Симптом: я изменил базовые URL-адреса, и теперь мой веб-сайт недоступен или я переместил все на новый сервер, не изменил base_urlи мой веб-сайт недоступен.

Как изменить или восстановить настройки base_url с помощью phpMyAdmin

Инструкции предназначены для простого веб-сайта «один магазин», где «представление магазина по умолчанию» настроено так, чтобы наследовать его настройки от «конфигурации по умолчанию». Для каждого непроверенного Use Websiteфлажка будет дополнительный экземпляр нижеупомянутых строк таблицы .

  1. Откройте свою core_config_dataтаблицу в phpMyAdmin.

  2. Сортируйте таблицу по pathстолбцу и найдите следующие строки для вашего незащищенного раздела , они должны выглядеть следующим образом:

Колонны

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. Замените его http://www.example.com/соответствующим URL домена (необходимо использовать косую черту), и если вы установили его в подпапку, добавьте его /после него.

  2. Найдите следующие строки для вашего защищенного раздела , они должны выглядеть следующим образом:

Колонны

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. Замените его https://www.example.com/соответствующим URL домена (необходимо использовать косую черту), и если вы установили его в подпапку, добавьте его /после него. Если вы еще не получили сертификат безопасности и не включили TLS / SSL, используйте httpвместоhttps

  2. Очистить содержимое из var/cache, var/sessionкаталогов после изменения base_urls.

Очистка кэша и сессий необходима, потому что ваша конфигурация кэшируется, и очистка вызывает принудительное перечитывание данных конфигурации из core_config_dataтаблицы и восстановление сеансов с соответствующей информацией.

Примечание: Если вы установили base_urlправильно для web/unsecure/base_urlи web/secure/base_urlвам не придется возиться с изменением {{UNSECURE_BASE_URL}}и {{SECURE_BASE_URL}}макросов в остальных записях.

Как изменить настройки base_url с помощью mysql из командной строки

  1. Войдите в базу данных MySQL, замените $ USER на имя пользователя базы данных и $ DBASE на имя базы данных. Вам будет предложено ввести пароль:

mysql -u $USER -p $DBASE

  1. Ниже приведены команды SQL для изменения значений base_url. Замените незащищенный http://www.example.com/и защищенный https://www.example.com/(если у вас включен SSL / TLS, иначе https должен быть http) с соответствующим URL-адресом домена (необходим конечный слеш), и если вы установили его в подпапку, добавьте его /после него.

Команды 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. Проверьте настройки base_url с помощью следующего:

Команды 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. Очистить содержимое из var/cache, var/sessionкаталогов после изменения base_urls. Очистка кеша и сессий необходима, потому что ваш конфиг кэшируется, и его очистка вызывает перечитывание данных конфигурации из core_config_dataтаблицы и восстановление сеансов с соответствующей информацией.
Fiasco Labs
источник
1
Примечание. В крайних случаях, когда ваши права доступа к var/каталогу испорчены, Magento сохранит кэш Magento в системном /tmpкаталоге, как описано здесь, и очистка кеша не удаляет кэшированные записи конфигурации, извлеченные core_config_dataдо перезагрузки сервера или другого пользователя с достаточными правами. может удалить потерянный кеш Magento.
Fiasco Labs
Чтобы найти этот неуместный каталог кэша, если вы можете установить n98-magerun, используйте команду, n98-magerun.phar sys:infoчтобы получить список основных сведений о системе, где один элемент находится Cache Directory.
Fiasco Labs
это работает для меня отлично.
Amol Bhandari SJ
13

В Magento2 также есть способ сделать это напрямую через Magento, используя приведенные ниже команды, вместо того, чтобы проходить через SQL, который я нахожу немного быстрее.

В корневом каталоге Magento выполните следующие команды:

  1. Установить незащищенный URL

    bin/magento setup:store-config:set --base-url="http://www.magento2.com/"
  2. Установить безопасный URL

    bin/magento setup:store-config:set --base-url-secure="https://www.magento2.com/"
  3. Очистить кэш

    bin/magento cache:flush
Харри
источник
1
Вам также может понадобиться отредактировать base_link_url после этого.
user3442612
для любого, кто перенаправил весь трафик через https, установка базового URL-адреса как https решит эту проблему (например, при установке SSL-сертификата с Certbot)
Антонио Араужо