Joomla中文教程:构建多重站点

2009-11-26 08:03:06  来源:网页教学网 

网页制作Webjx文章简介:Joomla文档中文翻译 - 如何基于一套Joomla系统构建多重站点。

概述

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

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

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

多站点解决方案的优势

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

开始

  1. 准备域名。首先需要和通常建站一样,为空间绑定一个主域名,并将其他需要用到的域名停放(park)在这个主域名中。本例中,我们以yellowjohnsoncandy.com作为主域名,而将redjohnsoncandy.com停放在其中。
  2. 安装Joomla。以通常的方式在主域名中安装Joomla,并为两个站点添加相应的内容及菜单项。
  3. 创建模板。根据设计需求为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公司省去很多编辑操作的时间,同时可以更方便的在两个站点之间分享一些可以共用的内容或数据,并且可以共用一些诸如联系表单一类的功能。

开始

  1. 准备域名。首先需要和通常建站一样,为空间绑定一个主域名,并将其他需要用到的域名停放(park)在这个主域名中。本例中,我们以yellowjohnsoncandy.com作为主域名,而将redjohnsoncandy.com停放在其中。
  2. 安装Joomla。以通常的方式在主域名中安装Joomla,并为两个站点添加相应的内容及菜单项。
  3. 创建模板。根据设计需求为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系统构建多站点的方案仅适用于非常特殊的需求;最简明高效的方法仍是针对不同的站点搭建各自的系统,绑定相应的域名。

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系统构建多站点的方案仅适用于非常特殊的需求;最简明高效的方法仍是针对不同的站点搭建各自的系统,绑定相应的域名。

更多