【问题标题】:Run Magento Store via .htaccess通过 .htaccess 运行 Magento 商店
【发布时间】:2012-04-24 10:38:40
【问题描述】:

我有一个相当简单的问题,我认为设置起来很容易,但事实证明很困难。

我有一个 Magento 安装,我希望它有 2 个网站,每个网站有两种语言。然后当我进入网球英国域时,它会加载英国商店。如果我进入法语域,它会加载法语商店。

这就是它现在的工作方式(不正确):

Tennis UK (website)
Tennis UK (store & store views)

Tennis FR (website)
Tennis FR (store & store views)

Volleyball UK (website)
Volleyball UK (store & store views)

Volleyball FR (website)
Volleyball FR (store & store views)

这就是我希望它的工作方式(正确):

Tennis (website)
Tennis UK / Tennis FR (stores & store views)

Volleyball (website)
Volleyball UK / Volleyball FR (stores & store views)

在 htaccess 中,我正在运行一个脚本来运行正确的网站,但我认为如果需要,我也应该能够运行商店代码,如下所示:

SetEnvIf Host www\.tennisukdomain\.co.uk MAGE_RUN_CODE=tennis_uk
SetEnvIf Host www\.tennisukdomain\.co.uk MAGE_RUN_TYPE=store
SetEnvIf Host ^tennisukdomain\.co.uk MAGE_RUN_CODE=tennis_uk
SetEnvIf Host ^tennisukdomain\.co.uk MAGE_RUN_TYPE=store

但这由于某种原因不起作用。有谁知道让这个工作的正确方法。通过每次加载商店视图而不是网站,这将减少我必须在管理员中执行的配置量。

非常感谢任何帮助。

【问题讨论】:

  • 哪个版本的 Magento? “存储”是默认的运行类型,顺便说一句。
  • 快速调试:破解打开 index.phpvar_dump($_SERVER) 以检查您的 mod_env 指令是否正常工作。
  • 我已经转储了服务器详细信息,但看不到 mod_env 提到的位置。哪个键告诉我这些信息?
  • mod_env 是您在 .htaccess 文件 (SetEnvIf) 中使用的内容。如果它正常工作,您应该在 $_SERVER 超全局的转储中看到您的环境变量。
  • 是的,所有服务器变量都按预期输出。

标签: .htaccess magento magento-1.6


【解决方案1】:

您可以通过代码来完成。例如:

index.php

$host = explode(':', $_SERVER['HTTP_HOST']);
$dname = substr($host[0], -3,3);

switch ($dname) {
case '.uk':
   $store = 'tennis_uk';
   break;
case '.fr':
   $store = 'tennis_uk';
   break;
default:
   $store = '';
}

Mage::run($store); 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-29
    相关资源
    最近更新 更多