需求:2个项目部署在一台服务器上的不同目录,比如A项目部署在rootA目录,B项目部署在rooB目录,现在访问testA.com跳转到rootA目录,访问testB.com跳转到rootB目录
网上的说法是设置httpd.conf,增加一个VirtualHost标签,于是我照着配置了,如下
<VirtualHost *:80>
DocumentRoot /yjdata/www/rootA
ServerName testA.com
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /yjdata/www/rootB
ServerName testB.com
</VirtualHost>
重启了一下服务器
service httpd restart
但奇怪的事情发生了,testA.com和testB.com访问到的内容都是rootA目录下的,后来搞了半天才发现这里有个坑,就是ServerName的域名一定要写全了,正确的写法应该是下面这种
<VirtualHost *:80>
DocumentRoot /yjdata/www/rootA
ServerName www.testA.com
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /yjdata/www/rootB
ServerName www.testB.com
</VirtualHost>
重新启动后完美解决问题。记录一下方便遇到同样问题的人参考。