这个问题在互联网和SO上都有很多人问过——关于每个人特定安装的具体细节掩盖了可用的答案。希望这个问题能帮助包括我在内的所有人更好地理解这一点。
我的问题是"我们应该如何配置Apache.conf文件来处理多个域?"
(我知道答案"取决于"。希望80%的人一开始会有一个基本的设置,然后再让它变得更复杂。)我希望这是一个很好的假设。
我将Magento的安装与Wordpress进行比较。在Wordpress下,安装它的"最佳方式"似乎是将整个核心放在一个名为/Wordpress的文件夹中。然后,使用Apache重写规则和永久链接,隐藏/wordpress文件夹。在多域情况下,Wordpress核心可以为您智能地处理整个过程,而无需对.htaccess文件进行太多修改。此外,无论需要做什么修改,Wordpress都可以为你做——或者插件也可以。天啊,我希望Magento能像Wordpress一样容易安装。但事实并非如此。(还!)
在Magento下,当我们想到URL时,"商店"这个词是非常误导的。所以,让我们暂时忽略它,只关心最底层——"商店视图"。在我的情况下,我有以下内容:
Main Web Site -> Main Web Site Store -> Default Store View
www.site1.com -> Main Store -> site1_english
www.site2.com -> Main Store -> site2_english
- 第一列是域
- 第二列是商店--这个讨论的误导性标题
- 最后一列是"商店视图"
至于实际放置文件的位置。大多数人,包括我在内,都想让马根托核心一个人呆着。没有任何变化。因此,我们将其放入htdocs根目录中,如下所示:
/var/www/html/magento
我想这就是每个人都会感到困惑的地方。Linux发行版对这个位置并不一致。更糟糕的是,很多人试图在一个经济的托管帐户上这样做。我自己在用EC2。忽略所有这些。。。将/magento粘贴到文档根目录中。接下来你可能会添加一个/wordpress文件夹。耶。稍后再做。
在我的apache配置中,我有这样的设置:
# Listen for virtual host requests on all IP addresses
NameVirtualHost *:80
<VirtualHost *:80>
ServerName site1.com
ServerAlias www.site1.com
DocumentRoot /var/www/html/magento
<Directory /var/www/html/magento/>
AllowOverride All
</Directory>
# Other directives here
SetEnv MAGE_RUN_CODE "site1"
SetEnv MAGE_RUN_TYPE "website"
</VirtualHost>
<VirtualHost *:80>
ServerName site2.com
ServerAlias www.site2.com
DocumentRoot /var/www/html/magento
<Directory /var/www/html/magento/>
AllowOverride All
</Directory>
# Other directives here
SetEnv MAGE_RUN_CODE "base"
SetEnv MAGE_RUN_TYPE "site2_en"
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /var/www/html/nowhere
</VirtualHost>
/nore文件夹有一个index.html,上面写着"no where"。
我看到的情况是这样的:
- 导航到www.site1.com->Magento重定向到默认商店视图(在IP地址上)
- 导航到www.site2.com->Magento重定向到默认商店视图(在IP地址上)
- 导航到我的服务器的IP地址->Magento显示默认商店视图
默认商店视图的BASE URL为http://my.ip.add.ress
以下是我的问题:
- 我们应该在MAGE_RUN_CODE和MAGE_RUN_TYPE中放入什么?有些网站说"网站",有些说"商店"。里面应该放什么
- 为什么我从来没有去过我的无处可去的网站
- 为什么www.site1.com一直重定向到默认商店视图
一些文档谈到了创建专用文件夹或围绕index.php或.htaccess进行复制,或者制作我们自己的.htaccess.在本文中,我选择了Apache配置文件。
为什么这样不行?
为什么www.site1.com一直重定向到默认商店视图?
转到
System->Configuration->General->Web
在那里你应该可以找到你存储的基本安全和基本不安全的URL。此外,在左上角,您应该可以看到您的设置范围。因此,对于每个商店视图,您应该更改(如果可能的话)商店视图的URL。
我们应该在MAGE_RUN_CODE和MAGE_RUN_TYPE中放入什么?有些网站说"网站",有些说"商店"。里面应该放什么?
如果我在代码中没有错的话,你可以指定你想要启动的"对象"的代码,在类型中你可以指定这个对象的类型——商店或网站但这不是100%的信息