Apache VirtualHosts 问题

Apache VirtualHosts 问题

我正在生产服务器上就地建立一个小型网站。在完成最终域名的所有设置时,我们将其定位在 dev.domain.com 上,这样我们的访问者在访问 www.domain.com 或 domain.com 时就不会看到可能有错误的网站。我通过指定一个虚拟主机来捕获 dev.domain.com 以及“真实”网站的 documentroot,然后创建一个新网站,该虚拟主机捕获 www.domain.com 和 domain.com,documentroot 指向与“真实”网站平行的目录,只包含 index.html。此网站将向访问者显示有关网站重建的消息。

这些是站点配置文件:

# dev.domain.com
<VirtualHost *:80>
        ServerAdmin [email protected]
        ServerName dev.domain.com

        DirectoryIndex index.html
        DocumentRoot /var/www/www.domain.com/htdocs/

        ScriptAlias /cgi-bin/ /var/www/www.domain.com/cgi-bin/
        <Location /cgi-bin>
                Options +ExecCGI
        </Location>

        ErrorLog /var/log/apache2/www.domain.com/error.log
        CustomLog /var/log/apache2/www.domain.com/access.log combined
</VirtualHost>


# a-notice-site
<VirtualHost *:80>
        ServerAdmin [email protected]
        ServerName www.domain.com
        ServerAlias domain.com    

        DirectoryIndex index.html
        DocumentRoot /var/www/notice-site/htdocs/

        ScriptAlias /cgi-bin/ /var/www/www.domain.com/cgi-bin/
        <Location /cgi-bin>
                Options +ExecCGI
        </Location>

        ErrorLog /var/log/apache2/www.domain.com/error.log
        CustomLog /var/log/apache2/www.domain.com/access.log combined
</VirtualHost>

所以我的问题是:输入 www.domain.com、www.domain.com. 甚至 domain.com. 时,我都能顺利访问通知网站,但仅访问 domain.com(不带结尾的点)时,浏览器地址栏会提示我已被路由到 www.domain.com/notice-site/htdocs,并出现 404 错误,表示未找到 URL。访问开发网站时一切正常。

我有点预感这与我设置虚拟主机的方式有关,但遗憾的是我不知道为什么会导致这种影响。有没有人听说过类似的事情或是什么原因造成的?

apache2ctl -S 给出:

VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80                   is a NameVirtualHost
         default server www.domain.com (/etc/apache2/sites-enabled/a-notice-site:4)
         port 80 namevhost www.domain.com (/etc/apache2/sites-enabled/a-notice-site:4)
         port 80 namevhost dev.domain.com (/etc/apache2/sites-enabled/dev.domain.com:4)
Syntax OK

答案1

这些配置看起来应该可以正常工作,您是否遇到了某种浏览器问题?也许您使用的浏览器会自动将 www 放在 domain.com 前面?您可以清除浏览器缓存并重试吗?确保您没有按 [Ctrl]+[Enter] 或类似键。

相关内容