如何修复基本URL,以便可以访问Magento网站?


36
  • 我更改了Base Urls,现在无法访问我的网站
  • 我将所有内容移至新服务器,未更改base_url,并且无法访问我的网站

如何更改或恢复我的BaseURL设置base_url?

Answers:


63

症状:我更改了Base Urls,现在无法访问我的网站,或者我将所有内容都移到了新服务器上,没有进行更改,base_url并且无法访问我的网站。

如何使用phpMyAdmin更改或恢复base_url设置

说明是针对简单的“一个商店”网站的,其中将“默认商店视图”设置为从“默认配置”继承其设置。每个未选中的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(必须使用斜杠),如果已安装在子文件夹中,请在/其后附加a 。

  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(必须使用斜杠),如果已安装在子文件夹中,请在/其后附加a 。如果尚未收到安全证书并启用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}}宏。

如何从命令行通过mysql更改base_url设置

  1. 登录到MySQL数据库,将$ USER替换为数据库用户名,将$ DBASE替换为数据库名。它将提示您输入密码:

mysql -u $USER -p $DBASE

  1. 以下是用于更改base_url值的SQL命令。将不安全http://www.example.com/且安全的https://www.example.com/(如果启用了SSL / TLS,否则应将HTTPs 替换为https)替换为适当的域网址(必须使用斜杠),如果已安装在子文件夹中,请在/其后附加一个。

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表中重新读取配置数据,并使用正确的信息重新建立会话。

1
注意:在极端情况下,如果您的var/目录权限被弄乱了,Magento会将Magento缓存存储在系统/tmp目录中,如此处记录的那样,并且清除缓存不会清除从core_config_data服务器重新启动或拥有足够权限的人之前拉出的缓存配置条目可以删除Magento错放的缓存。
Fiasco Labs 2015年

为了找到放错位置的缓存目录,如果可以安装n98-magerun,请使用命令n98-magerun.phar sys:info获取基本系统信息列表,其中包含一项Cache Directory
Fiasco Labs

这完全适合我。
Amol Bhandari SJ

13

在Magento2中,还有一种方法可以直接使用以下命令通过Magento进行此操作,而不必通过SQL进行查询,而我发现SQL会更快一些。

在Magento的根目录中,运行以下命令:

  1. 设置不安全的URL

    bin/magento setup:store-config:set --base-url="http://www.magento2.com/"
  2. 设定安全网址

    bin/magento setup:store-config:set --base-url-secure="https://www.magento2.com/"
  3. 清除缓存

    bin/magento cache:flush

1
此后,您可能还需要编辑base_link_url。
user3442612 '18

对于通过https重定向所有流量的用户,将基本URL设置为https将解决此问题(例如,在使用Certbot安装SSL证书时)
Antonio Araujo
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.