防止在Apache服务器别名设置中使用通配符

这是从我的服务器修改的VirtualHost设置。

<VirtualHost *:80> ServerName example.com DocumentRoot /mnt/example/public <Directory /mnt/example/public> AllowOverride all Options -MultiViews </Directory> </VirtualHost> 

我发现我可以访问example.com和* .example.com,例如www.example.com,abcde.example.com等。

我知道应该有一个ServerAlias设置,让我激活通配符子域支持。 但我无法看到ServerAlias设置我的VirtualHost或Apacheconfiguration文件。

我只想允许www.example.com和example.com可以访问我的网站,而其他子域将得到一个404错误。

我怎样才能设置?

谢谢大家。 🙂

我想你在conf文件中的所有虚拟主机容器之前缺less的是:

 NameVirtualHost *:80 

一旦你这样做了,取决于你想为所有那些你认为是“无效”的通配符做什么,你可以创build所需的<virtualhost>容器,然后用最后一个包含通配符。

请参阅http://httpd.apache.org/docs/2.2/vhosts/name-based.html

例如,我所做的是为myhost.mydomain.tld提供一个虚拟主机容器,然后是其他任何域,最后,我有一个容器* .mydomain.tld,基本上指向一个静态页面,通知人们想要自己的事业。