【Apache】绑定域名到子目录

    用二级域名来访问网站的某个子系统比起用子目录方式访问在视觉上要正式,方法便是将二级域名绑定到子目录上。下面来看下Apache的两种配置方法:

    1、httpd.conf 方式实现绑定

    httpd.conf 是Apache服务器的配置文件,利用这个文件可以对Apache做各种运行配置。

    配置方式很简单,在httpd.conf文件末尾处添加以下内容,然后重启Apache即可。



    <VirtualHost m.witmax.cn:80>
    ServerAdmin tempgame@hotmail.com
    DocumentRoot D:/wwwroot/subdir
    ServerName m.witmax.cn
    ErrorLog logs/m-error_log.txt
    CustomLog logs/m_log.txt common
    </VirtualHost> 

    说明:以上配置的作用是将二级域名m.witmax.cn绑定到子目录 D:/wwwroot/subdir上,站点管理员邮箱为tempgame@hotmail.com,错误日记写入到文件 logs/m-error_log.txt,常规日志写入到文件 logs/m_log.txt。

    2、.htaccess 方式实现绑定

    .htaccess 文件(或者"分布式配置文件")提供了针对每个目录改变配置的方法,即在一个特定的目录中放置一个包含指令的文件,其中的指令作用于此目录及其所有子目录。

    在站点根目录下建立.htaccess文件(Win主机无法直接建立,可先新建a.txt文件然后在命令行中用rename a.txt .htaccess来重命名),输入以下内容保存即可,无需重启Apache。

    RewriteEngine on
    # 把 m.witmax.cn 改为你要绑定的域名.
    RewriteCond %{HTTP_HOST} ^(www.)?m.witmax.cn$
    
    # 把 subdir 改为要绑定的目录.
    RewriteCond %{REQUEST_URI} !^/subdir/
    
    # 不要改以下两行.
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    
    # 把 subdir 改为要绑定的目录.
    RewriteRule ^(.*)$ /subdir/$1
    
    # 把 m.witmax.cn 改为你要绑定的域名
    # 把 subdir 改为要绑定的目录.
    # subdir/ 后面是首页文件index.php, index.html……
    
    RewriteCond %{HTTP_HOST} ^(www.)?m.witmax.cn$
    RewriteRule ^(/)?$ subdir/index.php [L]

     说明:以上配置的作用是将二级域名m.witmax.cn和www.m.witmax.cn都绑定到子目录/subdir(相对于站点根目录)上。

    以上两种方法经实践有效,任选其一即可。

    [完毕]



    本博客所有文章如无特别注明均为原创。
    复制或转载请以超链接形式注明转自枫芸志,原文地址《【Apache】绑定域名到子目录
    标签:
    分享:

已经有10 条评论抢在你前面了~

  1. 沙发
    求助?? 2014年12月11日 上午2:33

    RewriteCond %{HTTP_HOST} ^www.baidu.com$
    RewriteRule ^(.*)$ /jtjy/$1 [L]
    我通过上面,把www.baidu.com绑定到了主机www/jtjy/下
    结果:
    访问http://www.baidu.com/mulu/ 正常
    访问http://www.baidu.com/mulu 不正常,会自动跳转到http://www.baidu.com/jtjy/mulu/ 的不存在的目录 怎么回事?上面的规则怎么改?

    [回复]

    晴枫

    晴枫 回复:

    @求助??, 你看一下是否完整包括了上面的配置脚本 另检查一下你是否有多余的配置 如还有问题,可以加我QQ,关于页面上有

    [回复]

  2. 板凳
    求教 2013年12月16日 下午12:15

    方法一无效啊!方法二 二级域名下的index 文件能访问,但是其他文件的路径要怎么写呢?

    RewriteCond %{HTTP_HOST} ^(www.)?xxsj.shyyyl.com/news.html$
    RewriteRule ^(/)?$ xxsj/website/news.php[L]

    这样写不对啊!有时间可以问下你不?上面的邮箱是我QQ

    [回复]

    晴枫

    晴枫 回复:

    @求教, 加你了,可能跟你的软件版本和环境有关

    [回复]

    求教 回复:

    @晴枫, 教教我怎么用URL重写吧!现在就是二级域名下面的子页面的路径问题

    [回复]

  3. 地板
    efly 2012年11月15日 下午2:27

    现在还有效么

    [回复]

    晴枫

    晴枫 回复:

    @efly, 该是有效的

    [回复]

  4. 4楼
    优趣 2010年11月11日 下午10:41

    windows主机也可以吗?

    [回复]

    晴枫

    晴枫 回复:

    @优趣,可以

    [回复]

无觅相关文章插件,快速提升流量