为什么要用子域名?
用子域名有三个优势:
- Google 把它当作与主域名完全不同的站点来对待.
- 你可以用任何一个关键词做为你的子域名.
- 省钱(大多数主机提供商都支持).
例如,如果你的网站是 drupalsh.cn ,你可以建无数个子域名,像:
portfolio.drupalsh.cn
blog.drupalsh.cn
project.drupalsh.cn
还有一个优势,大家知道,在google的搜索结果中,如果内容来自同一个网站,那么在结果页里面最多显示二条记录,如果你用子域名建站,那么你就有机会在搜索结果页里显示很多条记录。
所以,子域名可以提供很好的SEO(Search Engine Optimization) .
大家知道,blog有很多优势,因此,我们可以用子域名技术在我们的网站里创建一个blog.
如何建站子域名
如果你只是想测试一个,你可以下载 XAMPP 或者 WAMP,它们都是免费的,并且很容易安装,在这里,我们采用XAMPP.
第一步,建立服务器
1 首先为我们的网站建一个DNS 文件(目的是测试一下本地是不是支持子域名)
DSN (Domain Name System) 告诉你的服务器子域名或web地址要转向哪里,它把IP地址转换为方便我们记的格式.
2 找到主机文件 : C:/WINDOWS/system32/drivers/etc/ 用记事本打开.
添加以下内容,然后保存,关闭.

3 接下来我们需要改变Apache的virtualHost设置。
打开 httpd.conf or httpd-vhosts.conf 文件(在你服务器的安装目录里), 如果你用Xampp,在:
Linux下,httpd.conf 位于:
把以下内容添加到 httpd.conf or httpd-vhosts.conf 文件的最下面:
<VirtualHost *:80>
DocumentRoot "C:/Program Files/xampp/htdocs"
ServerName localhost:80
</VirtualHost>
<VirtualHost www.site.local:80>
DocumentRoot "C:/Program Files/xampp/htdocs"
ServerName www.site.local:80
</VirtualHost>
<VirtualHost www.blog.site.local:80>
DocumentRoot "C:/Program Files/xampp/htdocs"
ServerName www.blog.site.local:80
</VirtualHost>
重启apache,以便使改动生效.
Linux下,用命令: apachectl -k restart
XAMPP中,在控制面版中启动或重启电脑.
很好,我们现在有二个子域名了,为了让它工作,我们需要在apache的安装目录下创建一个文件夹.
Step 2: Drupal "sites" folder setup
1 打开: C:/Program Files/xampp/htdocs 创建一个文件夹并命名为 "www.site.local", 把drupal的文件copy进这个文件夹中.

运行drupal的安装程序,在本地测试一下.

Step 3: 创建子域名
为我们安装的站(www.site.local)创建一个blog子域名 blog.site.local
1 在目录C:/Program Files/xampp/htdocs/www.site.local/sites下面添加一个新的subdomain文件夹,命名为 "blog.site.local" (参考一下图片).

新的 "blog.site.local" 目录下应该包括所有的settings, themes 和 应用于新的子域名下的modules , 通用的modules 和 themes 放在 sites/all 文件夹里.
2 现在,我们需要为drupal创建一个新的settings.php文件,让drupal认出 blog.site.local是 www.site.local的一个子域名.
A) 从 www.site.local/sites/default 复制settings.php 文件到 folder blog.site.local

B) 现在,我们要考虑子域名站点要分享同一个数据库还是用不同的数据库(Drupal多站点.
我会分别介绍。首先介绍用不同的数据库
独立数据库的安装
1 在 "blog.site.local" 文件夹里打开settings.php ,把$db_url 和 $db_prefix 数据库的配制对应好.
用你自已的数据库用户名和密码来代替下面的:
<?php
//$db_url = 'mysql://username:password@localhost/databasename';
$db_url = 'mysql://drupal:drupal@localhost/drupal_db';
?>
2 接下来,为了区别不同站之间的数据库,我们需要更改$db_prefix,用不同的词来做标记..
你可以选不同的前缀,这里我们用"blog1_";
<?php
$db_prefix = 'blog1_';
?>
现在,你的站点就拥有多个子域名了,并且它们用单独的数据库.
打开: www.blog.site.local ,运行安装程序. 每个子域名就会有属于自已的数据库了.
把 $db_prefix 留空:
<?php
$db_prefix = '';
?>
这样就可以了
打开: www.blog.site.local 运行安装程序,你的站点就会共享同一个数据库了.