Apache 下域名绑定到子目录

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/lx258963/article/details/83924481
有两种实现方法:
1,在httpd.conf文件结尾处加入如下代码

<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>


2.是利用.htaccess文件进行绑定

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]


大致说下。我的需求是 在www目录下有三个文件夹,分别是独立的项目,现在想使用域名给分别指定下。比如a.com绑定到www/a 文件下 b.com绑定到www/b c.com绑定到www/c

第一种方法,也就是在httpd.conf的文件尾加节点的方法,我试了下确实可以。
不过有个问题,我有三个目录,就意味着要写三个节点,但是我使用其它两个域名,b.com和c.com进行访问的时候,它会自动指定a那个目录,我分明已经指定过目录了。很纠结。

--------------------------------------------------------
第一种方法的问题解决了
如下:

NameVirtualHost *:80 //就是因为没有加这个NameVirtualHost才出现那个情况,引以为戒

<VirtualHost a.com:80>
ServerAdmin lx.xin@qq.com
DocumentRoot c:/wamp/www/a
ServerName a.com
ErrorLog logs/a_log.txt
CustomLog logs/a_log.txt common
</VirtualHost>

<VirtualHost b.com:80>
ServerAdmin lx.xin@qq.com
DocumentRoot c:/wamp/www/b
ServerName b.com
ErrorLog logs/b_log.txt
CustomLog logs/b_log.txt common
</VirtualHost>

<VirtualHost c:80>
ServerAdmin lx.xin@qq.com
DocumentRoot c:/wamp/www/c
ServerName c.com
ErrorLog logs/c_log.txt
CustomLog logs/c_log.txt common
</VirtualHost>

第二种方法,比较晕乎,不过在网上看到说可行,感兴趣的朋友可以试下。
至于第一种方法,还得继续摸索!~有解决方法,会继续进行更新
展开阅读全文

没有更多推荐了,返回首页