关于CentOS 6.5 配置虚拟服务器的问题

我有一个域名xxxx.com和一台centos 6.5的云服务器。
我已经把这个域名通过 A 记录解析到了这台云服务器上,并且 www,@,*也都指定了。

现在我想让 aaa.xxxx.com 能指向 apache服务器目录上的一个叫 aaa 的应用,让 bbb.xxxx.com 指向服务器目录下一个叫 bbb 的应用。

我目前是这样做的:
在vhost.conf里加了如下代码:

NameVirtualHost *:80

<VirtualHost *:80>
    DocumentRoot "/usr/local/apache/htdocs/aaa/"
    ServerName aaa.xxxx.com
    ErrorLog "logs/aaa.xxxx.com-error_log"
    CustomLog "logs/aaa.xxxx.com-access_log" common
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "/usr/local/apache/htdocs/bbb"
    ServerName bbb.xxxx.com
    ErrorLog "logs/bbb.xxxx.com-error_log"
    CustomLog "logs/bbb.xxxx.com-access_log" common
</VirtualHost>

但我重启 apahce 服务后,还是没有效果,请大家帮帮我,我应该怎么做?谢谢!

阅读 3k
1 个回答

使用vhost.map


  • 先修改httpd.conf配置文件(apache具体的配置文件路径以你的服务器为准,下同)

    vim /etc/httpd/conf/httpd.conf
  • 在文件末尾处添加上如下配置信息

    RewriteEngine on
    RewriteMap lowercase int:tolower
    RewriteMap vhost txt:/etc/httpd/vhost.map
    RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
    RewriteCond ${vhost:%1} ^(/.*)$
    RewriteRule ^/(.*)$ %1/$1
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule (.*)index.php/$1 [QSA,PT,L]
  • /etc/httpd/下创建一个vhost.map文件

    vim /etc/httpd/vhost.map
  • vhost.map文件中,添加上二级域名和其索对应的路径

    # 二级域名 执行文件所在路径
    aaa.xxxx.com /usr/local/apache/htdocs/aaa
    bbb.xxxx.com /usr/local/apache/htdocs/bbb
  • 重启apache服务器

  • 对域名进行管理,添加aaa这个A记录以及bbb这个A记录

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进