我的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/

10-16 10:12