【问题标题】:Magento: Moved Multistore - new store always redirect to old domain, although new base_urlMagento:移动多存储 - 新存储总是重定向到旧域,尽管新的 base_url
【发布时间】:2013-10-22 22:03:48
【问题描述】:

我已将 Multistore 移动到另一个具有以下结构的网络服务器:

mystore.com --> Magento Multistore installation
flowers.website.com --> symlinks to mystore.com folder
cars.website.com --> symlinks to mystore.com folder

新设置完全一样(只是域和文件夹名称不同)。

但是,如果我转到新网址 mynewstore.com,我将始终重定向到旧域。 我已经做过/尝试过的事情:

  • 更改了 core_config_data 中的 base_urls
  • 已清除 var + 777 权限
  • 已清除会话表
  • 重新索引
  • 检查 htaccess 的重定向
  • 检查 index.php
  • 检查不同商店的重定向模板

我的 index.php 的重要部分:

/* Store or website code */
$mageRunCode = isset($_SERVER['MAGE_RUN_CODE']) ? $_SERVER['MAGE_RUN_CODE'] : '';
/* Run store or run website */
$mageRunType = isset($_SERVER['MAGE_RUN_TYPE']) ? $_SERVER['MAGE_RUN_TYPE'] : 'store';
$mageRunCode = 'mystore';
$mageRunType = 'website';
Mage::run($mageRunCode, $mageRunType);

如果我要将 $mageRunCode 更改为另一个商店 ID(如“flowers”),则会加载旧的 (!!) 花店(重定向到旧的花 url)。

我想不看代码很难解决问题,但我没有其他想法可以在这里尝试。我真的很感激任何提示。

【问题讨论】:

  • 嗨汉内斯。你在运行什么网络服务器?有比编辑 index.php 更好的方法。你有 MySQL 服务器的访问权限吗?

标签: magento


【解决方案1】:

我曾经遇到过同样的问题,我花了将近一整天的时间才弄清楚出了什么问题。我有一个多商店,但所有商店在我尝试的每个 URL 上都给出了 404 页面。最后的解决方案是将MAGE_RUN_TYPEwebsite更改为store

【讨论】:

    【解决方案2】:

    由于这些行,您的 index.php 文件将覆盖 MAGE_RUN_CODEMAGE_RUN_TYPE 变量:

    $mageRunCode = 'mystore';
    $mageRunType = 'website';
    

    由于它们是在初始定义后调用的,因此它们被重置为 mystorewebsite

    尝试删除这些行,并查看变量是否正确传递到 Mage::run() 函数。


    关于 CHMOD 转 777 的重要通知

    这是一件有潜在危险的事情,因为它可能允许公共访问您的文件系统。由于这个原因,您永远不想在生产站点上设置 777 权限集。

    将您的文件夹设置为 755,将文件设置为 644。为此,请打开一个 shell 连接和 cd 到您的 Magento 根目录。运行以下命令:

    chmod -R 755 *; find -type f -print0|xargs -0 chmod 644
    

    如果运行正确,您安装的 Magento 中的所有文件都将设置为正确的权限。

    【讨论】:

    • 非常感谢您的帮助。你的帖子有道理,我改变了index.php。但不幸的是,它仍在重定向到旧域。也感谢您对权限的说明,我将对其进行更改。
    • 您提到了“旧域”,所以我假设域名已更改为?您确定您已在 Magento 配置中的 STORE 级别配置中更新和设置域名吗?
    • 是的,我做了一个 select * from core_config_data where path like "%base_url";我更新了所有这些网址。新的网址是正确的。我知道,这真的很奇怪!但是谢谢你的评论,我真的很感激。
    【解决方案3】:

    在 index.php 头文件中添加:

    $_SERVER['MAGE_RUN_CODE'] = $_SERVER['REDIRECT_MAGE_RUN_CODE'];
    $_SERVER['MAGE_RUN_TYPE'] = $_SERVER['REDIRECT_MAGE_RUN_TYPE'];
    

    【讨论】:

    • 请向作者和未来的谷歌人解释你的答案实际上是如何解决问题的。裸代码信息量不大
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-12
    相关资源
    最近更新 更多