为啥 Apache 忽略我的 VirtualHost 声明?

Posted

技术标签:

【中文标题】为啥 Apache 忽略我的 VirtualHost 声明?【英文标题】:Why Apache ignore my VirtualHost declaration?为什么 Apache 忽略我的 VirtualHost 声明? 【发布时间】:2020-07-05 20:58:56 【问题描述】:

Apache(来自 XAMPP)不能像预期的那样工作。 当我输入https://myVirtualHost 时,我会加入“C:/xampp/htdocs/myApplication/public/” 但是 apache 向我显示“C:/xampp/htdocs/index.php

这是我的 VirtualHost 声明:

<VirtualHost *:433>
    ServerName myVirtualHost
    DocumentRoot "C:/xampp/htdocs/myApplication/public"
    ErrorLog "logs/myApplication-error.log"
    CustomLog "logs/myApplication-access.log" common
    SSLEngine on
    SSLCertificateFile "C:/xampp/apache/conf/ssl.crt/server.crt"
    SSLCertificateKeyFile "C:/xampp/apache/conf/ssl.key/server.key"
</VirtualHost>

还有我的“C:\Windows\System32\drivers\etc\hosts”声明:

127.0.0.1 myVirtualHost

有什么想法吗?谢谢

编辑:我准确地说: Include conf/extra/httpd-vhosts.conf 在 "httpd.conf" 中处于活动状态,并且适用于所有 "*80 虚拟主机。只有 *443 不起作用。

【问题讨论】:

【参考方案1】:

请尝试检查文件:httpd.conf

取消注释:

Include etc/extra/httpd-vhosts.conf

如果您取消注释并在 httpd-vhosts.conf 中设置您的设置, 请重新启动。

这是我在实践中所知道的:

https://github.com/oliguo/Server-Deployment/blob/master/XAMPP.md#ssl-setup-with-xamppauthorized-with-godaddy

NameVirtualHost *:443

<VirtualHost *:443>
    DocumentRoot "/opt/lampp/htdocs/youdomain_A"
    ServerName youdomain_A
    SSLProtocol all -SSLv2 -SSLv3
    SSLCertificateFile "/opt/lampp/etc/ssl.crt/youdomain_A/youdomain_A.crt" ->from godady
    SSLCertificateKeyFile "/opt/lampp/etc/ssl.key/youdomain_A.key"
    SSLCertificateChainFile "/opt/lampp/etc/ssl.crt/youdomain_A/gd_bundle-g2-g1.crt" ->from godaddy
    <Directory "/opt/lampp/htdocs/youdomain_A/">
        Options Includes FollowSymLinks MultiViews
        AllowOverride All
        Require all granted
    </Directory>
    ErrorLog "/opt/lampp/htdocs/youdomain_A/domain_ssl_error_log"
    ErrorDocument 404 https://youdomain_A 
</VirtualHost>

【讨论】:

感谢您的回复,但此行始终有效:) @bArraxas 是否有 'NameVirtualHost *:443' 并检查 httpd.conf 是否有类似 ErrorDocument 404 的内容

以上是关于为啥 Apache 忽略我的 VirtualHost 声明?的主要内容,如果未能解决你的问题,请参考以下文章

Apache:使用通配符永久重定向到 HTTPS

为啥我的 IDocHostUIHandler 实现被忽略

为啥 .gitignore 不忽略我的文件?

为啥Java忽略我的serialVersionUID?

为啥我的覆盖保护函数 createChildren 被忽略?

为啥 flyway 会忽略我的 SQL 迁移文件?