在VirtualHost中需要ServerName

我有以下CNAMElogging:pear.example.com

然后我有一个VirtualHost条目:

<VirtualHost *:80> ServerName pear.example.com DocumentRoot /var/www/pearsite <Directory /var/www/pearsite> AllowOverride All Order allow,deny Allow from All </Directory> </VirtualHost> 

我不想向inputexample.com的用户显示/var/www/pearsite 。 example.com应显示禁止。

有没有办法用Apache来实现这一点?

绝对 – 你会想要一个不同的虚拟主机是默认的,并有403s。

 # This might already be present in your config, add it if not: NameVirtualHost *:80 <VirtualHost *:80> ServerName catchall <Location /> Order allow,deny Deny from all </Location> </VirtualHost> <VirtualHost *:80> ServerName pear.example.com # your existing config.. </VirtualHost> 

如果在真实服务器之前定义了403ing,那么它将被用作与不同虚拟主机的主机名不匹配的请求的默认值。