虚拟主机文件无法正确定向

Virtual host files won't direct correctly

我有 4 个虚拟主机。

我正在使用 Zend 服务器。 httpd.conf 文件似乎包含使用通配符的虚拟主机配置文件,如下所示:

Include "C:\blah\blah2\Zend\ZendServer/etc/sites.d/vhost_*.conf"

我的虚拟主机配置文件如下。现在,令我困惑的是 当我转到 https://www-test.blah.com, or https://www-test2.blah.com, it works fine. But when I go to https://review-test.blah.com 时,它会转到 www-test.blah.com

这让我感到困惑,因为据我所知,一切看起来都是以相同的方式设置的。

是否有可能由于虚拟主机文件是通过通配符包含的,它们包含的顺序是否重要?如果它是按字母顺序排列的,那么它将包含在显示的顺序中。

我注意到的一件事是,如果我在服务器上,https://review-test.blah.com works fine. But when I'm somewhere else my the network, it directs me to https://www-test2.blah.com

或者是否有其他因素可以影响 Apache 选择虚拟主机的方式?例如,证书文件重要吗?

Listen 80
Listen 443
<VirtualHost *:80>
    ServerName portal.blah.com:80

</VirtualHost>

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

NameVirtualHost review-test.blah.com:443

<VirtualHost review-test.blah.com:443>
    OTHER STUFF HERE
    OTHER STUFF HERE
    OTHER STUFF HERE
    OTHER STUFF HERE

    SSLEngine on        

    SSLCertificateFile "C:\blah\blah\Apache2\conf\extra\ssl\review-test.blah.com.crt"
    SSLCertificateKeyFile "C:\blah\blah\Apache2\conf\extra\ssl\review-test.blah.com.key"

    ServerName review-test.blah.com
    ServerAlias review-test.blah.com

</VirtualHost>

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

NameVirtualHost www-test.blah.com:443

<VirtualHost www-test.blah.com:443>
    OTHER STUFF HERE
    OTHER STUFF HERE
    OTHER STUFF HERE
    OTHER STUFF HERE

    SSLEngine on
    SSLCertificateFile "C:\blah\blah\Apache2\conf\extra\ssl\star.blah.com.crt"
    SSLCertificateKeyFile "C:\blah\blah\Apache2\conf\extra\ssl\star.blah.com.key"


    ServerName www-test.blah.com
    ServerAlias www-test.blah.com

</VirtualHost>

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

NameVirtualHost www-test2.blah.com:443

<VirtualHost www-test2.blah.com:443>
    OTHER STUFF HERE
    OTHER STUFF HERE
    OTHER STUFF HERE
    OTHER STUFF HERE

    SSLEngine on
    SSLCertificateFile "C:\blah\blah\Apache2\conf\extra\ssl\star.blah.com.crt"
    SSLCertificateKeyFile "C:\blah\blah\Apache2\conf\extra\ssl\star.blah.com.key"


    ServerName www-test2.blah.com
    ServerAlias www-test2.blah.com
</VirtualHost>

我能够修复它。

下面的命令有助于查看虚拟主机的解析方式。

httpd -S 

我的解决方案如下:

Listen 80
Listen 443
<VirtualHost *:80>
    ServerName portal.blah.com:80

</VirtualHost>

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx



<VirtualHost *:443>
    OTHER STUFF HERE
    OTHER STUFF HERE
    OTHER STUFF HERE
    OTHER STUFF HERE

    SSLEngine on        

    SSLCertificateFile "C:\blah\blah\Apache2\conf\extra\ssl\review-test.blah.com.crt"
    SSLCertificateKeyFile "C:\blah\blah\Apache2\conf\extra\ssl\review-test.blah.com.key"

    ServerName review-test.blah.com
    ServerAlias review-test.blah.com

</VirtualHost>

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

NameVirtualHost *:443

<VirtualHost *:443>
    OTHER STUFF HERE
    OTHER STUFF HERE
    OTHER STUFF HERE
    OTHER STUFF HERE

    SSLEngine on
    SSLCertificateFile "C:\blah\blah\Apache2\conf\extra\ssl\star.blah.com.crt"
    SSLCertificateKeyFile "C:\blah\blah\Apache2\conf\extra\ssl\star.blah.com.key"


    ServerName www-test.blah.com
    ServerAlias www-test.blah.com

</VirtualHost>

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

<VirtualHost *:443>
    OTHER STUFF HERE
    OTHER STUFF HERE
    OTHER STUFF HERE
    OTHER STUFF HERE

    SSLEngine on
    SSLCertificateFile "C:\blah\blah\Apache2\conf\extra\ssl\star.blah.com.crt"
    SSLCertificateKeyFile "C:\blah\blah\Apache2\conf\extra\ssl\star.blah.com.key"


    ServerName www-test2.blah.com
    ServerAlias www-test2.blah.com
</VirtualHost>