我的httpd-vhosts.conf文件中有以下子域配置:
<VirtualHost *:80>
ServerAdmin [email protected]
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未显示。问题是什么?
提前谢谢你。
最佳答案
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 [email protected]
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>
一般来说,我总是把更具体的定义放在更一般的定义之上。
关于linux - 在apache 2.4版中配置子域。*,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23184122/