How do I fix my Base URLs so I can access my Magento site?

Symptom: I changed Base Urls and now my website is inaccessible or I moved everything to a new server, didn't change the base_url and my website is inaccessible.

How to change or restore base_url settings with phpMyAdmin

Instructions are for a simple "one store" website where the "default store view" is set to inherit its setup from the "default config". There will be an additional instance of the below mentioned table rows for each unchecked Use Website checkbox.

  1. Open your core_config_data table in phpMyAdmin.

  2. Sort table by path column and find the following rows for your unsecure section, they should look like the following:

Columns

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. Replace http://www.example.com/ with your appropriate domain url (trailing slash necessary) and if you’ve installed in a subfolder append it with a / after it.

  2. Find the following rows for your secure section, they should look like the following:

Columns

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. Replace https://www.example.com/ with your appropriate domain url (trailing slash necessary) and if you've installed in a subfolder append it with a / after it. If you haven't received your security certificate and enabled TLS/SSL yet, use http instead of https

  2. Clear contents from var/cache, var/session directories after changing base_urls.

Clearing cache and sessions is necessary because your config is cached and clearing it forces a reread of the configuration data from the core_config_data table and reestablishment of sessions with the proper information.

NOTE: If you have set your base_url correctly for web/unsecure/base_url and web/secure/base_url you do not have to mess around with changing the {{UNSECURE_BASE_URL}} and {{SECURE_BASE_URL}} macros in the rest of the entries.

How to change base_url settings with mysql from the command line

  1. Log into your MySQL database, replace $USER with your database user name and $DBASE with your database name. It will prompt you for your password:

mysql -u $USER -p $DBASE

  1. Below are the SQL commands to change your base_url values. Replace unsecure http://www.example.com/ and secure https://www.example.com/ (if you have SSL/TLS enabled, else https should be http) with your appropriate domain url (trailing slash necessary) and if you’ve installed in a subfolder append it with a / after it.

SQL Commands

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. Check your base_url settings with the following:

SQL Commands

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. Clear contents from var/cache, var/session directories after changing base_urls. Clearing cache and sessions is necessary because your config is cached and clearing it forces a reread of the configuration data from the core_config_data table and reestablishment of sessions with the proper information.

In Magento2, there is also a way to do this directly via Magento using below commands rather than having to go through SQL which i find a bit quicker.

Within Magento’s root directory run below commands:

  1. Set Unsecure URL

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

    bin/magento setup:store-config:set --base-url-secure="https://www.magento2.com/"
    
  3. Clear Cache

    bin/magento cache:flush