magento 多域名多店

在magento1.4中请参考官网 :http://www.magentocommerce.com/knowledge-base/entry/tutorial-multi-site-multi-domain-setup

或者:http://www.magentocommerce.com/wiki/4_-_themes_and_template_customization/navigation/multiple-website-setup

以下内容为1.2版本适用,1.3也可以试下

预习:

首先让我们来认识几个名词术语,若你是专家你会发现我的解释与名词准确的含义有差异,但对于属于不熟的人还是有助于理解的。

1.parked domain : 你有域名 one.com ,他的网站文件根目录是 public_html/one,你添加一个域名two.com 也是用one.com的文件根目录 public_html/one , 那么这个新添加的域名two.com 就是 parked domain

2.addon domain :  你有域名 one.com,是用网站文件根目录是 public_html/one,你有添加了另外的域名 two.com three.comtwo.com 网站文件根目录是 public_html/twothree.com 是用网站文件目录是 public_html/three 。这个 two.com three.com 我们就可以称之为 addon domain

3.Subdomains :   你有域名 one.com 使用网站文件文件目录 public_html/one,你因为各种原因想使用 shoes.one.com 或者 cup.one.com 域名,这个 shoes cup代替www作为域名的前缀,shoes.one.com cup.one.com 就是 subdomains

事前指导

我们使用的就是parked domain ,将你要添加的域名指向你的现有magento 文件根目录。

就像预习中提到的,我们有个magento站域名为one.com ,添加新的域名two.com。设置two.com的根目录为one.com的根目录。

此文章是基于magento1.2版本,其它的版本见本篇文章结尾处的提示。

 

实践

我们假设你的magento 原有的域名是 one.com ,想要实现magento多店的域名是two.com。首先你先安装好 one.com magento网站,然后参考如下教程。

1.magento 后台需要做的设置

第一步:进入后台catalog—>manage catagories为要添加的店增加的一个新的根分类 two(名字可以随便取)如下图

magento多域名多店图1
magento多域名多店图1

第二步:进入system—>manage stores 为要添加的店增加一个新的website,点击create website 按钮。,填写内容如下图,注意填写的code在以后步骤需要使用

magento多域名多店图2
magento多域名多店图2

然后保存,点击 create store,为新添加的website添加store,如图

magento多域名多店图3
magento多域名多店图3

Website是刚创建的,root category是第一步中创建的。

然后保存,点击create store view,填写相关信息,如下图

magento多域名多店图4
magento多域名多店图4

Namecode自己写个好区分,容易记住的Status选择enabled(激活)点击保存

第三步 进入system—>configuration

在左侧的设置范围选项中选择在我们新建的店下,对新店进行设置,如下图

magento多域名多店图5
magento多域名多店图5

我们的新店在上面步骤中取的名字是 two website,我们选择two website,然后选择

左栏的web设置,如下图

magento多域名多店图6
magento多域名多店图6

去掉所有设置后面的对勾,不使用默认设置,在unsecure base url中填入你的多店的网址,本实例中是 two.com,注意填写完整的域名:http://www.two.com , 域名最后的斜线不要漏掉。

Secure是加密的网址,若你没有使用ssl请也填写 http://www.two.com。最后保存

总结

至此magento中需要设置的内容就没有了。在magento后台的设置中我们在以后步骤会用到的就是在第二步create website时填写的code two

2.修改根目录 index.php 文件

打开magento网站根目录,编辑文件 index.php

Mage::run();

替换为

 

switch($_SERVER['HTTP_HOST']) {

case 'two.com':

case 'www.two.com':

Mage::run('two', 'website');

break;

default:

Mage::run();

break;

}

若想添加更多的域名,重复如上步骤即可

至此, 设置完毕,可以使用 two.com 访问

最近有人反映如上的步骤后,网站无法运行,不要慌张,如上的文章是之前对于magento版本1.2适用,其它的版本就没准了。新的magento版本见 http://www.magentocommerce.com/wiki/multi-store_set_up/multiple-website-setup 或google下“magento multiple websites”

转载标明出处: hellokeykey.com 右兜钥匙

《magento 多域名多店》有44个想法

  1. 请问个问题,我按你的方法,出现一个错误,首页能够正常显示,但是点击其他页面,就出现404错误。刷新缓存还是出现这个问题。请问是怎么回事。.htaccess需要如何修改

  2. 产品在添加的时候是要选择在哪个域名和店视图里显示的,你以前的产品都还是以前的域名和店视图里的,你要修改下

  3. 你好。按照你的方法。结果在访问另一个站点时出现"很抱歉,您访问的页面已不存在。"
    这是什么原因啊?

    1. 你使用的是有cpanel的空间么?这个空间在域名管理里有这个,加上就行了。
      查看空间的使用说明,再不行问下技术支持,一般的技术支持都会回答你的问题了 :)

    1. 先看下你magento的后台域名设置那里设置的是什么,刷新缓存。还有可能就是你服务器环境设置有问题。

  4. 如何在网站上设置定义不同的支付方式,就是有的产品可以使用支付宝,有的只可以到付,有的可以使用信用卡

    1. 支付是提交订单流程中的一项,你将支付方式在后台设置好(看我的视频教程),这样顾客可以自己选使用哪种了。
      你想给某个产品指定支付方式设置起来不是很好弄的。比如:购物车里有两件商品,一个产品你想让客户用paypal,一个产品你想让客户用支付宝,这就不好实现了,也不太合逻辑。
      不过你可以建多个店,一个店里只有paypal支付的产品,一个店里只有支付宝支付的产品,这样也许可以变相实现一下。

  5. key,我亟需解决一个问题是如何在cpanel下多店铺用不同的ip,cpanel的addon好像不能设定不同的ip,您有这方面的经验吗?

    1. 没有,我的服务器基本都不是cpanel的,都是ssh手工操作。你可以问下空间技术支持,他们是最熟的了。

  6. 钥匙兄的教程真是体贴入微,步步指引。
    但是在后面的描述中,我好像感觉到了点硬编码的味道。如果再增加新域名网店,好像需要再次编辑 index.php。

  7. 忘记贴代码了

    /* 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);

    ——-
    PS:钥匙兄的这篇博文,被好多人转载

  8. 这个,好像可以减轻服务器的负担,对吧?在一个VPS上跑俩magento网站,和一个vps上跑一个magento系统,这个系统上俩域名,应该会减轻不少服务器的开销,不过产品多的话,恐怕每次重建索引,清理缓存,都会比较麻烦,卡,不知道到底这俩系统的索引,缓存啥的,是不是可以完全分开?

    1. 看下后台,我觉得不支持。最好不要多域名,对以后网站发展扩展不好。设置主从数据库,一个写一个读,这样对性能提升好点。一般20美金的专用服务器跑十个magento是没什么关系的。但产品总量不能太多。

  9. Hi Key,

    跟你咨询一下,Magento设置多店和多域名,这样如何设置SSL呢?一个SSL不是针对一个具体的域名和IP的吗?如果两个店,同一个IP,能设置两个SSL吗?还是一个SSL能搞定两个店?

    咨询一下两个店的数据库是一个吗?客户是共享的?客户在一个店注册就不用到另一个店注册了对吧?

    1. 你被混淆了。多店不是基于多域名的,但是如果你想,你可以多域名多店,这个也是支持的。你可以多个数据库也可以一个这要看你的需求。ssl必须是唯一确定的网址,www.hellokeykey.com与hellokeykey.com 对于ssl来说是两个网址,一个是没有www的。ssl也必须是独立ip,所以你的magento使用ssl就和多域名会产生矛盾。

  10. 两个站的产品如果一模一样的话那还需要在TWO.COM里面再添加一次产品吗?
    还是说能直接用..我本地试了下好像要重新添加产品才行.不能用ONE.COM里面的产品.

  11. 新年好,key..
    那个问题我搞清楚了,我把Use Web Server Rewrites都设置为no之后,就可以了,但是这对SEO十分不利,请问我应该怎样做,才能在Use Web Server Rewrites都设置为yes的情况下,两个域名都正常呢?谢谢了。。

    我再说下这个问题吧:
    我设置了两个域名两个店,domain1.com和domain2.com,但当Use Web Server Rewrites为yes时,domain1.com正常,domain2.com显示page not found, domain2.com的Use Web Server Rewrites设置为no时,就正常了。

    1. cms的page下的homepage应该每个域名对应一个,就不会无法找到了。seo方面看下服务器返回状态,是200就没啥事的

  12. 您好key,CMS的page下的homepage有设置好的,我忘记说了domain2.com的主页可以打开,就是其它页面打开显示page not found。

  13. hello,看了很久你的博客,在这里学到了很多东西,非常感谢keykey的无私奉献。
    说说我的问题
    原有五个域名五个网站,通过这个方法都正常运行,昨天新增加了两个域名。 在magento后台新建了对应的网站-商店-界面,同时修改了index.php,但是现在两个域名一个显示”403 Forbidden”,另一个在浏览器输入时直接跳转到了默认网站。

  14. 我的网店是几个人合伙的,有一部分商品是在香港,一部分在内的,关于运费计算找不到一个很好的解决办法,要根据商品所在地进行,进行运费结算,请教一下有没有这样的插件?谢谢

  15. 你好,我的网址用你的方法成功设置了第二个域名。但是第二个域名在创建商店界面时,除了默认那个界面,新建的界面都会跳回到第一个域名去 ?不知道如何设置?

      1. 用多域名多店铺,为什么维护会很麻烦,能详细谈谈吗,

        Magento 多店铺是最大的看点,多店铺一个后台也极大方便店主,

        1. 添加一个店铺,数据库表就增加很多东西,设置不好,你的网址重写表就可能有好几个G,单是优化就够你费劲的了。

评论已关闭。