我已将我的Magento移动到另一个具有其他域名的服务器,现在它一直将我链接回旧域。已搜索并替换所有文件和整个数据库,以确保参考不存在。缓存被删除。我怀疑它仍然尝试使用旧数据库,所以我修改了包含数据库信息的local.xml文件,但这并没有改变任何东西。既然没有缓存,有没有人知道什么是错误的?
答案 0 :(得分:22)
显然,Magento也使用server-root中的'temp'目录进行缓存。 清理这将解决问题。当然,重启服务器时也要注意这一点。
确保您的网络服务器对您的magento安装中的var
,var/cache
和var/tmp
文件夹具有写入权限。
尝试使用chmod -R 700 var
或chmod -R 766
(谨慎使用后者)。
注意:这是因为没有正确设置文件/目录权限。 Magento尝试使用var / cache和var / tmp,发现它们是Web服务器用户不可写的,并继续将其缓存移动到system / tmp文件夹。无论您诅咒多少并更改BaseURL设置并删除var / cache中找到的任何内容,Magento都会继续从system / tmp文件夹中读取缓存的配置。
不要相信Linux Server Admin 101问题会导致这种情况吗?这是视觉证据。
答案 1 :(得分:16)
这可能是由于存储在数据库表core_config_data
中的旧基本URL。您必须更新该值以指向新域。
您可以使用以下更新查询进行更新
UPDATE core_config_data SET value="http://www.newdomain.com/"
WHERE path="web/unsecure/base_url"
更新安全基本网址
UPDATE core_config_data SET value="https://www.newdomain.com/"
WHERE path="web/secure/base_url"
答案 2 :(得分:4)
这是你的答案:
第一步很简单 - 在数据库中找到基本url值:表名是core_config_data,键是/ web / unsecure / base_url和web / secure / base_url。将这两个更改为正确的值。
希望有所帮助
答案 3 :(得分:3)
在尝试了上面列出的所有内容以及其他几个SO答案后,我遇到了这个问题 我发现core_config_data表中有多个base_url定义
如果你跑
select * from core_config_data where path like '%base_url%'
你应该看到所有的定义 该定义的范围不同,并且覆盖了我已经更改的默认值。
答案 4 :(得分:2)
答案 5 :(得分:1)
在我的情况下,更奇怪的是,在我的开发实例中,我没有“temp”文件夹,缓存存储在站点vhost之外的某个位置,或者以dB为单位,但不在core_config_data中。只有Magento BE中的刷新缓存才有帮助,所以最好在dB转储之前进行。
最好的问候。
答案 6 :(得分:1)
在我的情况下,因为我忘了更改app/etc/local.xml
中的数据库名称
答案 7 :(得分:1)
在我的情况下,配置为path=payment/wayforpay_payment/merchant
,其中包含由下划线替换的点,例如www_yourdomain_com
。我将其更改为mynewdomain_com
后问题已得到解决。
答案 8 :(得分:0)
我在网址重定向方面也遇到了一些问题,请确保在后端设置新域时在网址末尾添加/字符。一切顺利!
答案 9 :(得分:0)
在我的情况下,它是baseUrl,带有一个大写字母
答案 10 :(得分:0)
从var / cache目录中删除缓存。
之后在magento的core_config_data表中运行此查询。之后你就不会出现重定向错误。
此过程适用于Magento 1.9.x和magento 2.x
UPDATE core_config_data SET value =“http://example.com/”WHERE path =“web / unsecure / base_url”; 更新core_config_data SET值=“https://example.com/”WHERE path =“web / secure / base_u
答案 11 :(得分:0)
我发现使用接口执行移动操作:
在admin>下配置>一般标签> web,更新基本URL和安全基本URL。
移动您的文件夹。
在命令行下告诉magento清除缓存。
php bin / magento cache:clean
答案 12 :(得分:0)
我有同样的问题。如果您可以通过将index.php添加到网址(例如http://www.yoursite.de/index.php)来调用您的网站,则很可能是缓存问题。
打开开发者控制台并禁用缓存,或者只是在浏览器中删除缓存。然后调用URL。这为我解决了!