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.
Open your
core_config_data
table in phpMyAdmin.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/
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.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/
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, usehttp
instead ofhttps
Clear contents from
var/cache
,var/session
directories after changingbase_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
- 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
- Below are the SQL commands to change your base_url values. Replace unsecure
http://www.example.com/
and securehttps://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';
- 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%';
- Clear contents from
var/cache
,var/session
directories after changingbase_urls
. Clearing cache and sessions is necessary because your config is cached and clearing it forces a reread of the configuration data from thecore_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:
Set Unsecure URL
bin/magento setup:store-config:set --base-url="http://www.magento2.com/"
Set Secure URL
bin/magento setup:store-config:set --base-url-secure="https://www.magento2.com/"
Clear Cache
bin/magento cache:flush