我正在重build一个旧的服务器。 五个旧站点中只有一个需要上线,五个旧站点都指向相同的IP地址。
不幸的是,无论何时通过自己的独特域名为旧网站提出请求,他们都会通过我试图实现的一个网站的页面。 我只想让旧的网站显示一个404而不是我实际上想要做的一个网站。
举个例子:
我想再次移动站点1。 所以我打开了IP地址为192.168.0.1的机器上的apache,将站点1的所有文件都放在/ var / www目录中。 当我浏览到192.168.0.1或www.first.com我正确地看到网站1.当我浏览到www.second.com和www.third.com我也收到网站1这是问题。
如果没有www.first.com网站,有没有办法可以解决这个问题?
这是我的网站可用:
NameVirtualHost *:80 LogFormat "%h %l %u %t \"%r\" %>s %b" common <Files ~ "^\.ht"> Order allow,deny Deny from all Satisfy All </Files> <Directory /> Order Deny,Allow Deny from all Options None AllowOverride None Options None </Directory> <Directory /var/www> Order Allow,Deny Allow from all </Directory> <VirtualHost *:80> ServerName first.com ServerAlias www.first.com DocumentRoot /var/www ErrorLog /var/log/first.com.err CustomLog /var/log/first.com.log common </VirtualHost> <VirtualHost _default_:*> ServerName unknown DocumentRoot /var/www_404 </VirtualHost>
没有匹配ServerName或ServerAlias请求将由第一个块加载; 只需将你的404' VirtualHost移动到顶端(它的绑定应该与默认的默认值相匹配,所以把它设置为*:80 – 通配虚拟主机不会没有这个请求)。
对于默认的VirtualHost,请尝试以下(顶部,而不是底部):
<VirtualHost _default_:*> DocumentRoot /var/www_404 </VirtualHost>
否则,它将尝试search名为“未知”的服务器,如果你有它的底部;-)
或者,您可以在VirtualHost指令之外指定DocumentRoot来定义默认位置,如Apache文档中所述
编辑:关于放置的小调整