Joomla技巧 基于一套Joomla系统构建多重站点

2019-03-12 08:36:19来源: Viiiix 阅读 ()

新老客户大回馈,云服务器低至5折

概述

在使用Joomla建站的过程中,虽然最佳实践是为每个站点使用单独的域名、单独的一套Joomla系统以及独立的数据库,但在某些情况下,基于一套Joomla系统构建多重站点也是可行及合理的。虽然这篇文章中的示例站点是基于Linux和Apache的,但是这套方法同样适用于其他比较流行的建站配置。

下面是一个需要使用多站点解决方案的需求实例:

一个名叫“Johnson Candies”的小公司拥有两个独立但相关联的品牌:Red Candy和Yellow Candy。他们需要同时展现在一套Joomla搭建的站点上,但是要有各自独立的首页,并对应着各自的域名,redjohnsoncandy.com和 yellowjohnsoncandy.com;同时它们还会采用完全不同的页面设计方案。

多站点解决方案的优势

基于一套Joomla系统为两个品牌搭建各自独立的站点,可以使Johnson Candies公司省去很多编辑操作的时间,同时可以更方便的在两个站点之间分享一些可以共用的内容或数据,并且可以共用一些诸如联系表单一类的功能。

开始

准备域名。首先需要和通常建站一样,为空间绑定一个主域名,并将其他需要用到的域名停放(park)在这个主域名中。本例中,我们以yellowjohnsoncandy.com作为主域名,而将redjohnsoncandy.com停放在其中。

安装Joomla。以通常的方式在主域名中安装Joomla,并为两个站点添加相应的内容及菜单项。

创建模板。根据设计需求为Red Candy和Yellow Candy创建两套模板,并添加到Joomla根目录/Templates文件夹中;进入模板管理,将这两套模板分别绑定给两个品牌对应的菜单项页面。

添加转向

方法1:创建htaccess转向。

首先我们要在Joomla的全局设置(Global Configuration)中开启“Search Engine Friendly URLs”;关于SEF网址的使用,可以参见“Joomla文档中文翻译 - 如何在Joomla 1.5中使用SEF(search engine friendly)网址”。

我们要实现的是,每当有对redjohnsoncandy.com这个域名的请求发起,就会转向进入之前搭建的站点中对应着Red Candy品牌的分类博客页面。将下面的代码添加到.htaccess文件中:

#The following rule works, but it changes which domain name displays.
RewriteCond %{HTTP_HOST} ^redjohnsoncandy.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.redjohnsoncandy.com$
RewriteRule ^(.*)$ http://www.yellowjohnsoncandy.com/index.php?option=com_content&view=category&layout=blog&id=3&Itemid=12 [R=301,L]

现在我们的需求已经基本实现,但是有一个很明显的缺陷:虽然用户在输入redjohnsoncandy.com后可以进入Red Candy品牌对应的分类博客页面,但在浏览器中他们还是可以看到当前页面仍是在yellowjohnsoncandy.com这个域名下的。不幸的是,如果我们使用这种htaccess转向的方法,那么这个问题是无可避免的(为了防止生成LOOP)。

方法2:创建PHP Header跳转。

这种方法可以避免方法1中的缺点,使不同品牌的页面能够对应着其各自的域名。与前面为htaccess添加代码不同,这次我们需要修改一个模板文件。打开我们之前为Red Candy创建的模板中的index.php文件,在head中加入以下代码:

<?php
$domain =

概述

在使用Joomla建站的过程中,虽然最佳实践是为每个站点使用单独的域名、单独的一套Joomla系统以及独立的数据库,但在某些情况下,基于一套Joomla系统构建多重站点也是可行及合理的。虽然这篇文章中的示例站点是基于Linux和Apache的,但是这套方法同样适用于其他比较流行的建站配置。

下面是一个需要使用多站点解决方案的需求实例:

一个名叫“Johnson Candies”的小公司拥有两个独立但相关联的品牌:Red Candy和Yellow Candy。他们需要同时展现在一套Joomla搭建的站点上,但是要有各自独立的首页,并对应着各自的域名,redjohnsoncandy.com和 yellowjohnsoncandy.com;同时它们还会采用完全不同的页面设计方案。

多站点解决方案的优势

基于一套Joomla系统为两个品牌搭建各自独立的站点,可以使Johnson Candies公司省去很多编辑操作的时间,同时可以更方便的在两个站点之间分享一些可以共用的内容或数据,并且可以共用一些诸如联系表单一类的功能。

开始

准备域名。首先需要和通常建站一样,为空间绑定一个主域名,并将其他需要用到的域名停放(park)在这个主域名中。本例中,我们以yellowjohnsoncandy.com作为主域名,而将redjohnsoncandy.com停放在其中。

安装Joomla。以通常的方式在主域名中安装Joomla,并为两个站点添加相应的内容及菜单项。

创建模板。根据设计需求为Red Candy和Yellow Candy创建两套模板,并添加到Joomla根目录/Templates文件夹中;进入模板管理,将这两套模板分别绑定给两个品牌对应的菜单项页面。

添加转向

方法1:创建htaccess转向。

首先我们要在Joomla的全局设置(Global Configuration)中开启“Search Engine Friendly URLs”;关于SEF网址的使用,可以参见“Joomla文档中文翻译 - 如何在Joomla 1.5中使用SEF(search engine friendly)网址”。

我们要实现的是,每当有对redjohnsoncandy.com这个域名的请求发起,就会转向进入之前搭建的站点中对应着Red Candy品牌的分类博客页面。将下面的代码添加到.htaccess文件中:

#The following rule works, but it changes which domain name displays.
RewriteCond %{HTTP_HOST} ^redjohnsoncandy.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.redjohnsoncandy.com$
RewriteRule ^(.*)$ http://www.yellowjohnsoncandy.com/index.php?option=com_content&view=category&layout=blog&id=3&Itemid=12 [R=301,L]

现在我们的需求已经基本实现,但是有一个很明显的缺陷:虽然用户在输入redjohnsoncandy.com后可以进入Red Candy品牌对应的分类博客页面,但在浏览器中他们还是可以看到当前页面仍是在yellowjohnsoncandy.com这个域名下的。不幸的是,如果我们使用这种htaccess转向的方法,那么这个问题是无可避免的(为了防止生成LOOP)。

方法2:创建PHP Header跳转。

这种方法可以避免方法1中的缺点,使不同品牌的页面能够对应着其各自的域名。与前面为htaccess添加代码不同,这次我们需要修改一个模板文件。打开我们之前为Red Candy创建的模板中的index.php文件,在head中加入以下代码:

___FCKpd___1

现在用户输入redjohnsoncandy.com后就会被转向至Red Candy对应的页面,并且根域名会变为redjohnsoncandy.com。

总结

基于一套Joomla系统构建多站点的方案仅适用于非常特殊的需求;最简明高效的方法仍是针对不同的站点搭建各自的系统,绑定相应的域名。

译者:Viiiix

SERVER
["HTTP_HOST"];

if (($domain == "redjohnsoncandy.com") ||
($domain == "www.redjohnsoncandy.com")) {
header("location: http://www.redjohnsoncandy.com/index.php?option=com_content&view=category&layout=blog&id=3&Itemid=12");
}
?>

现在用户输入redjohnsoncandy.com后就会被转向至Red Candy对应的页面,并且根域名会变为redjohnsoncandy.com。

总结

基于一套Joomla系统构建多站点的方案仅适用于非常特殊的需求;最简明高效的方法仍是针对不同的站点搭建各自的系统,绑定相应的域名。

译者:Viiiix

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:边缘元素:网站SEO中的八大关键词组合策略

下一篇:提高用户体验的关键在于自定义404错误页面