在 Ubuntu 上设置 Apache 来为 LAN 上的子域提供服务

在 Ubuntu 上设置 Apache 来为 LAN 上的子域提供服务

我需要设置我的计算机,以便为 LAN 上的所有计算机提供页面。我的网站主页(即没有子域的主页)可以正常工作,其他计算机可以通过以下网址访问它:http://狐狸(我的电脑名称)但是当他们尝试访问子域时,他们会被重定向到 www.subdomain.vulpecula,这是行不通的。

奇怪的是,当我在自己的电脑上访问子域时,它不会重定向并且工作正常。我也尝试过使用全小写的服务器名称,但这没有任何区别。

为了提供帮助,我在下面附上了两个文件的内容:

在 /etc/hosts 中:

192.168.1.103    Vulpecula    # Added by NetworkManager
127.0.0.1    localhost.localdomain    localhost
::1    Vulpecula    localhost6.localdomain6    localhost6

127.0.0.1 subdomain.vulpecula
127.0.0.1 extra.vulpecula

192.168.1.103 subdomain.vulpecula
192.168.1.103 extra.vulpecula

#::1    Vulpecula    localhost6.localdomain6    localhost6
#127.0.1.1    Vulpecula

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

/etc/apache2/httpd.conf

NameVirtualHost *:80

<VirtualHost *:80>

DocumentRoot /home/thomas/hello
<Directory />
Options FollowSymLinks
 AllowOverride None
</Directory>
</VirtualHost>

<VirtualHost *:80>
ServerName subdomain.vulpecula
DocumentRoot /home/thomas/sub/0.0.6
</VirtualHost>

<VirtualHost *:80>
ServerName extra.vulpecula
DocumentRoot /home/thomas/hello
</VirtualHost>

答案1

您可以:

  1. 将 subdomain.vulpecula 放入所有客户端的 /etc/hosts 文件中;或者
  2. 将 subdomain.vulpecula 放入您的 LAN 的内部 DNS。

您的 LAN 上的其他计算机可能遇到的情况是,subdomain.vulpecula 是一个未知名称,因此它们的浏览器会添加“www.”前缀,以尝试找到可解析的名称。一旦您确保 subdomain.vulpecula 解析为有效的 IP 地址,此问题就会消失。

相关内容