Apache2:如何避免该网站默认回复?

时间:2020-04-21 08:48:40

标签: apache2

我有一个带有一些网站的服务器apache2。

其中之一在http和https上均提供 其他所有服务器均仅位于http

我从公司的一位前员工那里继承了这种糟糕的局面,但我受到了困扰,请不要怪我

如果我尝试通过其他网站之一的https访问,我认为apach2正在提供通过https访问的第一台(也是唯一的)服务器,即使该服务器具有不同的域。

如果我访问https://blablbalca.com,则apache2知道blablbalca.com不在https上提供,但没有给我404,它将在https://anotherwebsite.com上提供服务

哪个指令告诉apache在缺少定义的情况下自动为“第一个”服务?

如何解决?

编辑:我发现了一种更优雅,更笼统的方式来表达我的问题:

如果不是真正从服务器提供指向相同IP的域,如何避免apache2为随机虚拟主机服务?

1 个答案:

答案 0 :(得分:1)

您可以命名最佳虚拟主机,并设置ServerNameServerAlias以匹配每个网站。此外,如果您希望blablbalca.com在通过HTTP访问时返回错误,则必须在your_site.conf中设置虚拟主机,以处理来自https端口的流量。就像进行重定向或显示错误页面一样。

The default configuration file that deals with the incoming connection from a domain name that is not on the server or without domain name at all (direct IP connection):

For port 80:

<VirtualHost *:80>

        ProxyPass "/" "http://your/path/here"
        ProxyPassReverse "/" "http://your/path/here"

</VirtualHost>

For port 443 (SSL):

<VirtualHost *:443>

        ProxyPass "/" "http://your/path/here"
        ProxyPassReverse "/" "http://your/path/here"

</VirtualHost>

The website with a domain:

<VirtualHost *:80>

        ServerName yoursite.com
        ServerAlias www.yoursite.com
        ServerAdmin none@webhost.com
        DocumentRoot /var/www/yourWebsite

</VirtualHost>

在这种情况下,我将删除很多指令,而仅保留我们关注的指令。