Apache2:VirtualHost 不起作用

Apache2:VirtualHost 不起作用

我在将域名重定向到服务器上的特定文件夹时遇到问题。我正在阅读此处的说明:

这些是我的配置行:

#This is the default Apache2 configuration lines
<VirtualHost *:80>
        ServerAdmin webmaster@localhost

        DocumentRoot /var/www

#This is what I've added
<VirtualHost *:80>
    DocumentRoot /var/www/astudio/sites/mywebsite
    ServerName www.mywebsite.com
</VirtualHost>

但是它不起作用...域名只是没有将用户转发到我的网站。我还需要配置什么吗?

答案1

尝试一下这个(假设 www.mywebsite.com 解析为您的 Web 服务器的 IP 地址):

#This is the default Apache2 configuration lines
<VirtualHost *:80>
   ServerAdmin webmaster@localhost
   DocumentRoot /var/www/astudio/sites/mywebsite
   ServerName www.mywebsite.com
</VirtualHost>

答案2

假设你想做基于名称的虚拟主机,你有一个NameVirtualHost *:80指示?

另外,您的配置中是否有其他VirtualHost部分可能会干扰这一部分?

答案3

可供参考的信息非常少。无论如何...

您能连接到服务器并获取默认欢迎页面吗?您使用服务器名称还是 IP 地址进行连接?如果使用 IP 地址,您将获得默认页面。您是否重新加载了配置?

如果无法连接,您的 IP 地址是否正确?是防火墙/iptables 问题吗?Apache 是否在 eth0 上监听,还是仅在环回接口上监听?

======编辑

如果您使用 IP 地址连接,您将获得默认页面,而不是您想要的页面,因为HTTP 请求中的标头与您的 中定义的Host:不匹配。您必须使用 专门访问您的网站才能访问您的页面(但您可以添加别名)。ServerNameVirtualHostwww.mywebsite.com

如果您无法使用该名称进行连接,则说明您遇到了 DNS 问题。快速解决方案是将主机名和 IP 地址添加到您的hosts文件中。在 Linux 中是/etc/hosts,在 Windows 中是\windows\system32\...(我忘记具体在哪里了)

====== 编辑2

如果您使用其 IP 地址访问网站,则Host:标头将包含 IP 地址,例如。Host: 1.2.3.4:80我还没有尝试过,但您可以尝试将 IP 地址添加到您的。我假设您有一个专用的 IP 地址。VirtualHostServerAlias

答案4

仅供参考,如果有人在 Ubuntu 上安装了 Apache(可能其他发行版也与此解决方案相关),他必须注意符号链接的名称/etc/apache2/sites-enabled/(如果他手动添加链接而不是通过命令添加链接)a2ensite。链接名称必须始终带有.conf扩展名,因为只有这些文件通过主配置文件中的 Include 指令包含在内。

现在我使用了一个.lo扩展(这是我使用的本地域),这花费了我额外一个小时的工作时间。

相关内容