magento在多线程技巧中基于cookie重定向到另一个子域

时间:2012-01-15 09:25:47

标签: php .htaccess magento

我有一个magento商店,但目前决定添加其他商店来分隔库存并且还有一个干净的目录,所以我决定创建商店并将它们托管在electronics.mydomain.comsport.mydomain.com等子域上。我遵循了这个教程http://www.crucialwebhost.com/blog/how-to-setup-multiple-magento-stores/,但在它之后,子域仍然重定向到主域,如www.mydomain.com,即使我没有对我的.htaccess做任何事情,我找到了一种方法来打开它我的子域目录中的index.php并添加了$_GET['___store']= "STORECODE";,并且在我的管理面板中我在cookie字段中输入了.mydomain.com,并将持续时间延长到1天。

Voila .. 现在一切正常,直到我意识到存在问题,每当我访问我的任何商店(安装在子域上)然后尝试打开我的主域名时是www.mydomain.com,它重定向到subdomain.mydomain.com(这是我检查过的最后一个子域名的网址)但是在清除Cookie后它再次起作用,我意识到问题是magento正在保存当前的商店ID在cookie中,所以当我打开我的主域并读取cookie时,将返回该存储,从而返回重定向。  好的,现在我已经能够从URL中删除SID,并且一切正常,因为它们共享相同的cookie域,现在我注意到如果我访问了我的链接,如welspot.com??store=default,主站点打开没有重定向到子域,我希望有人可以帮我将主域下的所有传入请求重定向到mydomain.com? _store = default。

由于我仍然存在cookie重定向的问题,我在主magento安装的头部已经硬编码$_GET['store']="default";到我的index.php文件中,现在一切正常但是还有另一个问题,当我转到类别字段,我尝试选择它没有选择的任何类别,它只显示创建新类别而不是选择和编辑点击类别,我认为这与在我的索引中添加$_GET['store']="default";有关.php因为当我删除它一切正常但当我删除它并访问我的网站welspot.com,基于我访问的最近的子域重定向那里,我认真地需要解决这个问题。

2 个答案:

答案 0 :(得分:3)

我不是在每个商店上编辑index.php(这是维护麻烦),而是使用此blog post中描述的虚拟主机或.htaccess解决方案来设置包含每个商店的唯一商店代码。在nutsell中添加行

SetEnv MAGE_RUN_CODE "base" # put here your website or store code
SetEnv MAGE_RUN_TYPE "website" # put here 'website' or 'store'

进入您的虚拟主机,或:

SetEnvIf Host electronics.mydomain.com MAGE_RUN_CODE="base";
SetEnvIf Host electronics.mydomain.com MAGE_RUN_TYPE="website";

进入你的.htaccess。确保您也在主域上执行此操作,以设置默认商店代码。

同时登录后端,然后转到系统>组态。并选择“网络”选项,您将在其中看到您网站的安全和不安全网址。现在从左上角的“当前配置范围”下拉列表中选择每个商店,并更改URL以匹配您已设置的虚拟主机(取消选中“使用默认值”框并输入新URL)。这应该会阻止你看到的重定向,因为Magento现在知道每个商店的独特子域名。

答案 1 :(得分:0)

我建议您以其他方式实现新域名。您可以在此博客中查看:

西班牙语:

http://www.elblogdeselo.com/magento-configurar-multiples-stores-y-multiples-websites

英文:

http://blog.baobaz.com/en/blog/setting-up-magento-with-multiple-websites-or-stores?page=1 希望能帮助你。