在 apache 2.4 版中配置子域。*
Posted
技术标签:
【中文标题】在 apache 2.4 版中配置子域。*【英文标题】:configure a subdomain in apache version 2.4.* 【发布时间】:2014-06-04 17:37:10 【问题描述】:我的 httpd-vhosts.conf 文件中有以下子域配置:
<VirtualHost *:80>
ServerAdmin foo@bar.com
DocumentRoot "/home/www"
ServerName bh.dev
ServerAlias *.bh.dev
ErrorLog "/var/log/apache2/bh-error_log"
CustomLog "/var/log/apache2/bh-access_log" common
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/srv/www/htdocs"
ServerName blog.bh.dev
ErrorLog "/var/log/apache2/bh-error_log"
CustomLog "/var/log/apache2/bh-access_log" common
</VirtualHost>
bh.dev 和 bh.dev/blog URL 已成功显示,但 blog.bh.dev 未成功显示。有什么问题?
提前谢谢你。
【问题讨论】:
【参考方案1】:blog.bh.dev
请求由第一个定义本身处理,因为它也有资格在bh.dev
下。所以把第二个虚拟主机定义放在第一个上面就可以解决问题了。
<VirtualHost *:80>
DocumentRoot "/srv/www/htdocs"
ServerName blog.bh.dev
ErrorLog "/var/log/apache2/bh-error_log"
CustomLog "/var/log/apache2/bh-access_log" common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin foo@bar.com
DocumentRoot "/home/www"
ServerName bh.dev
ServerAlias *.bh.dev
ErrorLog "/var/log/apache2/bh-error_log"
CustomLog "/var/log/apache2/bh-access_log" common
</VirtualHost>
作为一般规则,我总是将更具体的定义放在更通用的定义之上。
【讨论】:
我已按照您的建议替换了虚拟主机的定义,但遗憾的是问题没有解决。 在此之后您需要重新启动 apache 当然我每次编辑配置文件的时候都重启了apache。以上是关于在 apache 2.4 版中配置子域。*的主要内容,如果未能解决你的问题,请参考以下文章