配置Apache 虚拟主机支持二级域名的两种方法

Apache配置虚拟目录和二级域名 http://skyfen.iteye.com/blog/515221

原文: http://wenku.baidu.com/view/0f292120a5e9856a56126018.html?re=view

方法一. 利用 Apache 的 mod_vhost_alias
引用:

   
#LoadModule vhost_alias_module modules/mod_vhost_alias.so 去掉前面的#
    <VirtualHost 127.0.0.1:80>
        ServerAdmin [email protected]
        ServerName x.com
        UseCanonicalName Off
        VirtualDocumentRoot /www/%1.1/%1.1%1.2/%0
    </VirtualHost>

    这样的话域名: www.x.com 指向 /www/w/ww/www.x.com
    域名:bottle.x.com 指向 /www/b/bo/bottle.x.com

    而且新建站分只要建相应目录就可以了,比如新建 new.x.com
    那么只要创建目录 /www/n/ne/new.x.com

我测试通过的案例
#add by lzk
<VirtualHost 127.0.0.1:8080>
ServerAdmin [email protected]
	ServerName testweb.com
	UseCanonicalName Off
	VirtualDocumentRoot E:/FSM-CMS2_WS_2008/WS_Projects/fsmcms_app/trunk/com.fsm.cms.war/war/publish/%1
</VirtualHost>
#需要开放目录权限,否则在访问的时候会提示无权限访问
<Directory "E:/FSM-CMS2_WS_2008/WS_Projects/fsmcms_app/trunk/com.fsm.cms.war/war/publish/">
    #
    # Possible values for the Options directive are "None", "All",
    # or any combination of:
    #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
    #
    # Note that "MultiViews" must be named *explicitly* --- "Options All"
    # doesn't give it to you.
    #
    # The Options directive is both complicated and important.  Please see
    # http://httpd.apache.org/docs/2.2/mod/core.html#options
    # for more information.
#
    Options Indexes FollowSymLinks

    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    #   Options FileInfo AuthConfig Limit
    #
    AllowOverride None

    #
    # Controls who can get stuff from this server.
    #
    Order allow,deny
    Allow from all
</Directory>
#add by lzk


如果输入test1.testweb.com,则对应E:/FSM-CMS2_WS_2008/WS_Projects/fsmcms_app/trunk/com.fsm.cms.war/war/publish/test1
如果输入test2.testweb.com,则对应E:/FSM-CMS2_WS_2008/WS_Projects/fsmcms_app/trunk/com.fsm.cms.war/war/publish/test2

    说明:
    %0 = 完整的域名 ex: www.stksky.com
    %1 = www
    %1+ = www.stksky.com
    %1.1 = w
    %1.2 = w
    %1.3 = w
    %2 = stksky
    %3+ = stksky.com
    %2.1 = s
    %2.2 = t
    %2.3 = k
    …….
    %3 = com
    %3+ = com
    %3.1 = c
    …….

方法二. 利用 Apache 的 rewrite_module
引用:

    首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com
    其次,在 httpd.conf 中打开 mod_rewrite
    之后,在 httpd.conf 的最后,添加以下内容:

   
RewriteEngine on
    RewriteMap lowercase int:tolower
    RewriteMap vhost txt:/usr/local/etc/apache/vhost.map
    RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
    RewriteCond ${vhost:%1} ^(/.*)$

你可能感兴趣的:(配置Apache 虚拟主机支持二级域名的两种方法)