MAMP – 主机名更改为具有两个本地主机的项目的第一个虚拟主机SSL条目

我有两个互相拷贝的项目,在我的Mac上使用MAMP。 他们都有SSL页面。 但是,只要我点击项目2的安全SSL页面,base_url或host就会变成project1,而不是剩下的project2。 我知道这是虚拟主机的一个问题,因为如果我切换条目的顺序,就会发生相反的情况。 这是我的configuration文件:

/Applications/MAMP/conf/extra/httpd-ssl.conf <VirtualHost _default_:443> DocumentRoot "/Applications/MAMP/htdocs/proj1" ServerName proj1.localhost:443 ErrorLog "/Applications/MAMP/Library/logs/error_log" TransferLog "/Applications/MAMP/Library/logs/access_log" SSLEngine on SSLCertificateFile "/Applications/MAMP/conf/apache/ssl/server.crt" SSLCertificateKeyFile "/Applications/MAMP/conf/apache/ssl/server.key" </VirtualHost> <VirtualHost _default_:443> DocumentRoot "/Applications/MAMP/htdocs/proj2" ServerName proj2.localhost:443 ErrorLog "/Applications/MAMP/Library/logs/error_log" TransferLog "/Applications/MAMP/Library/logs/access_log" SSLEngine on SSLCertificateFile "/Applications/MAMP/conf/apache/ssl/server.crt" SSLCertificateKeyFile "/Applications/MAMP/conf/apache/ssl/server.key" </VirtualHost> -------------------- cat /etc/hosts ## # Host Database # # localhost is used to configure the loopback interface # when the system is booting. Do not change this entry. ## 127.0.0.1 localhost 255.255.255.255 broadcasthost ::1 localhost fe80::1%lo0 localhost 127.0.0.1 proj1.localhost 127.0.0.1 proj2.localhost 

改变

 <VirtualHost _default_:443> 

 <VirtualHost *:443> 

然后确保你有

 NameVirtualHost *:443 

然后重新启动Apache,它应该工作

编辑

你也不需要在ServerName proj1.localhost:443

这是因为主机名被encryption发送,并且SSL解密发生在虚拟主机内部,而不是在其外部。 这意味着服务器在select虚拟主机时无法访问主机名,因此将始终select第一个。 你可以在wiki.apache.org上阅读更多