【问题标题】:.htaccess issue for a subdomain site in MagentoMagento 中子域站点的 .htaccess 问题
【发布时间】:2015-11-29 03:48:26
【问题描述】:

我为我的主域创建了一个 Magento 站点。现在我需要在我的子域中再添加一个商店。我创建了一个网站、商店和商店视图。然后我添加了安全和不安全的基本 URL。之后我编辑了我的根文件夹中的 .htaccess 文件,它已经包含了一些托管在主域中的商店的代码,在这里我需要创建一个子域。我在 .htaccess 文件中使用了以下代码:

SetEnvIf Host www\.abc\.domain\.in MAGE_RUN_CODE=website_code
SetEnvIf Host www\.abc\.domain\.in MAGE_RUN_TYPE=website
SetEnvIf Host ^abc\.domain\.in MAGE_RUN_CODE=website_code
SetEnvIf Host ^abc\.domain\.in MAGE_RUN_TYPE=website

子域仍然无法连接到 Magento... 为什么会这样?谁能帮帮我?

【问题讨论】:

    标签: .htaccess magento subdomain


    【解决方案1】:

    我会检查环境变量 MAGE_RUN_CODE 和 MAGE_RUN_TYPE 是否设置正确,您可以通过 PHP 访问它们。您应该在输出 phpinfo() 的文件中看到它们。如果未设置它们,则您的服务器环境可能无法处理环境变量。 mod_env 模块应该在您的服务器上激活,否则您的解决方案将无法正常工作。


    但你不需要使用环境变量:

    从 Magento 启动的商店在根目录的 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';
    
    Mage::run($mageRunCode, $mageRunType);
    

    将其更改为:

    switch($_SERVER['HTTP_HOST']) {
      case 'maindomain.com':
      case 'www.maindomain.com':
        $mageRunCode = 'firstsite';
        $mageRunType = 'website';
      break;
      case 'subdomain.maindomain.com':
        $mageRunCode = 'secondsite';
        $mageRunType = 'website';
      break;
    }
    
    Mage::run($mageRunCode, $mageRunType);
    

    只需将$mageRunCode 和所需的$mageRunType 更改为您的实际值,它应该可以工作!

    【讨论】:

    • 'mod_env' 在我的服务器中启用,我检查了它。
    • 你看到 php_info() 输出中的变量了吗?如果是,那么您的 mod_env 设置是正确的,它应该可以在不修改 index.php 的情况下工作。我不知道其他解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-20
    • 2012-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-09
    相关资源
    最近更新 更多