在Linux下的Apache2配置二级域名

我目前看到的资料都是人云亦云、以讹传讹,终于还是没有一个准确的实现办法。

后来通过控制面板的调试终于得到一段准确可用的配置代码。

 

下面的这个范例中我希望将forum.ohosting.info绑定到/var/www/forum目录下,(/var/www是站点ohosting.info的默认目录), 操作如下:

  1. 打开/etc/apache2下的http.conf文件,如果此文件为空,那么打开/etc/apache2/sites-enabled下的000-default文件。此文件是虚拟主机的配置文件。
  2. 你会在该文件内找到下面的结构
    [cc]<VirtualHost *:80>
    DocumentRoot /var/www/ #站点文件的位置
    ServerName ohosting.info #虚拟主机绑定的域名
    ServerAdmin [email protected] #管理员邮箱
    </VirtualHost>[/cc]你的配置文件可能会比这里展示的更为复杂,不必害怕,请仔细查阅,你会发现它的结构非常清晰。
  3. 在ServerName ohosting.info行和ServerAdmin [email protected]行之间添加你需要解析的域名:ServerAlias forum.ohosting.info
  4. 在</VirtualHost>行之上添加rewrite代码
    [cc]RewriteEngine on
    RewriteCond %{HTTP_HOST}   ^forum.ohosting.info [NC]
    RewriteRule   ^/(.*)$ /forum/$1[/cc]
  5. 完整的代码如下
    [cc]<VirtualHost *:80>
    DocumentRoot /var/www/ #站点文件的位置
    ServerName ohosting.info #虚拟主机绑定的域名
    ServerAlias forum.ohosting.info #绑定的域名1
    ServerAlias bbs.ohosting.info #绑定的域名2
    ServerAdmin [email protected] #管理员邮箱RewriteEngine on
    RewriteCond %{HTTP_HOST}   ^forum.ohosting.info [NC]
    RewriteRule   ^/(.*)$ /forum/$1
    RewriteCond %{HTTP_HOST}   ^bbs.ohosting.info [NC]
    RewriteRule   ^/(.*)$ /bbs/$1
    </VirtualHost>[/cc]

    这样,我们就实现了forum.ohosting.info与目录/forum/、bbs.ohosting.info与目录/bbs/的绑定。

通过同样的步骤,我们也可以实现三级域名、四级域名的绑定。

发表评论

Clicky