1、首先修改C:\Windows\System32\drivers\etc目录下的
hosts
文件,用记事本打开,加入:
127.0.0.1
www.a.com127.0.0.1
www.b.com记得去掉前面的#
2、打开xampp\apache\conf\httpd.conf文件,搜索
“Include
conf/extra/httpd-vhosts.conf”,确保前面没有
#
注释符,也就是确保引入了
vhosts
虚拟主机配置文件。效果如下:
#
Virtual
hosts
Include
"conf/extra/httpd-vhosts.conf"
开启了httpd-vhosts.conf,默认a的httpd.conf默认配置失效(确保
httpd-vhosts.conf
文件里也开启了虚拟主机配置,见第3条),访问此IP的域名将全部指向
vhosts.conf
中的第一个虚拟主机。
3、在虚拟主机设置文件xampp\apache\conf\extra\httpd-vhosts.conf里设置:取消
NameVirtualHost
*:80
前面的
##,这样就启用了
vhosts.conf
,默认的httpd.conf默认配置失效。虚拟主机配置将只设置在httpd-vhosts.conf里。localhost
的目录默认配置记得也按此设置。
#
#
Use
name-based
virtual
hosting.
#
NameVirtualHost
*:80
#
#
VirtualHost
example:
#
Almost
any
Apache
directive
may
go
into
a
VirtualHost
container.
#
The
first
VirtualHost
section
is
used
for
all
requests
that
do
not
#
match
a
ServerName
or
ServerAlias
in
any
block.
#
ServerAdmin
postmaster@dummy-host.localhost
DocumentRoot
"I:/xampp/htdocs/"
ServerName
localhost
ServerAlias
localhost
ErrorLog
"logs/dummy-host.localhost-error.log"
CustomLog
"logs/dummy-host.localhost-access.log"
combined
ServerAdmin
postmaster@dummy-host1.localhost
DocumentRoot
"I:/xampp/htdocs/a"
ServerName
www.a.com
ServerAlias
www.a.com
ErrorLog
"logs/dummy-host1.localhost-error.log"
CustomLog
"logs/dummy-host1.localhost-access.log"
combined
ServerAdmin
postmaster@dummy-host2.localhost
DocumentRoot
"I:/xampp/htdocs/b/"
ServerName
www.b.com
ServerAlias
www.b.com
ErrorLog
"logs/dummy-host2.localhost-error.log"
CustomLog
"logs/dummy-host2.localhost-access.log"
combined
至此,XAMPP
的虚拟主机设置完毕,现在
访问
localhost
还是原来的
XAMPP
的帮助指南,访问
www.a.com
将指向到绑定的
a
目录,访问
www.b.com
将指向到绑定的
b
目录。
你的这个要根据你的需要来定:第一种可能性:【你的这台服务器只有这一个主域名(是不是泛解析与些无关)】
那么这种情况,根本不用开后面的所谓URL重写,只要设定一个主目录就可以了,我估计你就是这一个吧,那保持默认就行了,不用动它。
第二种可能:【你的服务器有多个主域名,这个主域名只是你多个主域名的其中一个】
那么这种情况就必须使用URL重写来实现了,那接下来我给你说一下这个:
你的<Directory "D:/APMServ/www/htdocs/company">这一行,是将服务器的目录设置为D:/APMServ/www/htdocs/company
那么这个目录将成为你网站的根目录,从而会让你解析到这台服务器上的其它域名也会被链接到这个目录下来。
而且 php_admin_value safe_mode On 这行设置,是在<Directory>之中么?这不是乱用一气么?它应该直接隶属于<VirtualHost>的吧:
它应该这样使用:
<VirtualHost *:80>
php_admin_value open_basedir "/usr/local/apache/htdocs/www:/tmp"
php_admin_value safe_mode On
</VirtualHost>
另外,URL重写不要放到任何标签之中去
为了方便,你可以放到httpd.conf文件的最后面,这样容易寻找,也就是下面的这一段:
RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]
另外,就算是你使用这一段URL重写好像也无法实现你的功能吧?
试试如下的重写规则:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^([a-z_0-9\-]+)\.chujushichang\.com$
RewriteRule ^(.*)$/company/$1 [L]
另外,如果重写了这条规则,就不要与去设定什么<Directory "D:/APMServ/www/htdocs/company">了,设置了之后反而会出问题。
因为这条规则就是为了只让chujushichang.com这个主域名下的所有二级域名,都对应到网站根目录下的company目录中去的。
————
这百度知道的编辑器真不是一般的不好用,换行不好用,鼠标拖远不好用,还莫名其妙地把我的文章顺序弄乱了。
这还是个“大”站!
1、打开文件:X:\Apache\conf\extra\httpd-vhosts.conf2、比如我绑一个24.com到F:\www\24\,格式如下:
<VirtualHost *>
<Directory "F:/www/24">
Options -Indexes FollowSymLinks
Allow from all
AllowOverride All
</Directory>
ServerAdmin admin@24.com
DocumentRoot "F:/www/24"
ServerName 24.com:80
ServerAlias 24.com
ErrorLog logs/24.com-error_log
</VirtualHost>
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)