gpt4 book ai didi

php - 如何在 Apache 上设置 2 个虚拟主机,其中一个主机使用 SSL 运行而其他主机不使用?

转载 作者:太空宇宙 更新时间:2023-11-03 13:37:23 25 4
gpt4 key购买 nike

我在 Windows Server 2008 R2 上运行 Apache 2.4.18,在名为 SERVER1 的物理机器上运行 PHP 5.6.18,它加入了我名为 example.com 的内部域。

默认情况下,我的 Apache 服务器启用了 SSL。我需要运行 2 个不同的网站,其中一个网站使用 SSL 而另一个不使用。

这是我添加到我的 httpd-vhosts.conf 文件中的内容,试图让它工作

我怎样才能让它工作?

<VirtualHost *:80>
ServerName SERVER1.example.com
Redirect permanent "C:/phpsites/app1" https://sub1.example.com/
</VirtualHost>


<VirtualHost *:80>

DocumentRoot "C:/phpsites/app2/public"
ServerName SERVER1.example.com
ServerAlias sub2.example.com

SSLEngine Off

<Directory "C:/phpsites/app2/public">
AllowOverride All
Require all Granted
</Directory>

</VirtualHost>


<VirtualHost *:443>

DocumentRoot "C:/phpsites/app1"
ServerName SERVER1.example.com
ServerAlias sub1.example.com

SSLEngine On
SSLCertificateFile "c:/Apache24/conf/certificate/cert.crt"
SSLCertificateKeyFile "c:/Apache24/conf/certificate/private.key"

<Directory "C:/phpsites/app1">
AllowOverride All
Require all Granted
</Directory>

</VirtualHost>

上面的设置不能正常工作。当我转到 https://sub1.example.com 时,Apache 将我重定向到正确的站点 C:/phpsites/app1。当我转到 http://sub1.example.com 时,它会将我重定向到 C:/phpsites/app2/public 但我不希望这种情况发生。当我去http://sub2.example.com由于某种原因,我被重定向到 https://sub1.example.com。

我需要指导任何正在寻找 http://sub1.example.com 的用户或 https://sub1.example.comhttps://sub1.example.com。

所有正在寻找 http://sub2.example.com 的用户或 https://sub2.example.comhttp://sub2.example.com

这是我执行 httpd -D DUMP_VHOSTS 时得到的结果

> VirtualHost configuration:
>
> *:80 is a NameVirtualHost
>
>
> default server SERVER1.example.com
> (C:/Apache24/conf/extra/httpd-vhosts.conf:27) port 80 namevhost
> SERVER1.example.com (C:/Apache24/conf/extra/httpd-vhosts.conf:27)
>
> port 80 namevhost SERVER1.example.com
> (C:/Apache24/conf/extra/httpd-vhosts.conf:34) alias sub2.example.com
>
>
> *:443 is a NameVirtualHost default server SERVER1.example.com (C:/Apache24/conf/extra/httpd-vhosts.conf:52) port 443 namevhost
> SERVER1.example.com (C:/Apache24/conf/extra/httpd-vhosts.conf:52)
> alias sub1.example.com
>
> port 443 namevhost SERVER1.example.com
> (C:/Apache24/conf/extra/httpd-ssl.conf:85)

最佳答案

我的设置实际上工作正常。出于某种原因,Firefox 正在浏览器中缓存 dns。

我不得不删除我的临时文件,一切都很顺利!

很困扰我,想知道火狐为什么要缓存dns!

我希望这篇笔记能帮助到同一条船上的人!

关于php - 如何在 Apache 上设置 2 个虚拟主机,其中一个主机使用 SSL 运行而其他主机不使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35606145/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com