如何在局域网内其他电脑访问多台XAMPP/Apache虚拟主机且无需修改hosts文件
解决局域网内无需修改hosts访问多台XAMPP/Apache虚拟主机的方案
如果你不想让局域网内其他电脑修改hosts文件就能访问你配置的多个虚拟主机,有两种实用的方案可以选择,我会结合你的现有配置详细说明:
方案一:基于端口的虚拟主机配置(最直接适配现有设置)
这种方法是给每个虚拟主机分配独立的端口,局域网内其他电脑通过「主机IP+端口号」的方式访问,完全不需要修改hosts。
步骤1:让Apache监听多个端口
打开XAMPP的Apache主配置文件httpd.conf,找到Listen 80这一行,在它下面添加额外的监听端口,比如:
Listen 80 Listen 8080 Listen 8081
这里的80是你现有第一个虚拟主机的端口,8080、8081分配给另外两个虚拟主机,端口号可以自定义(只要不被其他程序占用)。
步骤2:修改vhosts.conf中的虚拟主机配置
针对你现有的三个<VirtualHost>配置,分别修改端口号:
- 第一个虚拟主机(原localhost)保持80端口:
<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot "C:/xampp/htdocs/AFNet" ServerName localhost ErrorLog "logs/localhost-error.log" CustomLog "logs/localhost-access.log" common <Directory "C:/xampp/htdocs/AFNet"> Require all granted AllowOverride All Options Indexes FollowSymLinks </Directory> </VirtualHost>
- 第二个虚拟主机改成8080端口:
<VirtualHost *:8080> ServerAdmin webmaster@localhost DocumentRoot "C:/xampp/htdocs/你的第二个站点目录" ServerName localhost # 这里ServerName可以保留,不影响局域网访问 ErrorLog "logs/site2-error.log" CustomLog "logs/site2-access.log" common <Directory "C:/xampp/htdocs/你的第二个站点目录"> Require all granted AllowOverride All Options Indexes FollowSymLinks </Directory> </VirtualHost>
- 第三个虚拟主机改成8081端口,配置逻辑和上面一致,替换对应的目录和日志路径即可。
步骤3:验证配置并重启Apache
在XAMPP控制面板中,点击Apache模块的「Config」→「Check config」,确认配置没有语法错误后,重启Apache服务。
访问方式
局域网内其他电脑直接通过你的主机局域网IP加端口访问:
- 访问第一个站点:
http://192.168.x.x(默认80端口可以省略) - 访问第二个站点:
http://192.168.x.x:8080 - 访问第三个站点:
http://192.168.x.x:8081
方案二:利用mod_vhost_alias实现动态路径访问(适合站点目录有规律的场景)
如果你的三个站点目录命名有规律(比如AFNet、SiteB、SiteC),可以用Apache的mod_vhost_alias模块实现通过「主机IP/站点目录名」的方式访问,同样不需要修改hosts。
步骤1:启用mod_vhost_alias模块
打开httpd.conf,找到下面这一行,去掉前面的#注释:
#LoadModule vhost_alias_module modules/mod_vhost_alias.so
改成:
LoadModule vhost_alias_module modules/mod_vhost_alias.so
步骤2:修改vhosts.conf配置
删除原来的三个<VirtualHost>配置,替换成如下动态虚拟主机配置:
<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot "C:/xampp/htdocs" ServerName 192.168.x.x # 替换成你的主机局域网IP UseCanonicalName Off # 自动映射URL中的路径到对应的站点目录 AliasMatch ^/([^/]+)(.*) "C:/xampp/htdocs/$1$2" <Directory "C:/xampp/htdocs/*"> Require all granted AllowOverride All Options Indexes FollowSymLinks </Directory> </VirtualHost>
步骤3:重启Apache并访问
重启Apache后,局域网内其他电脑可以这样访问:
- 访问AFNet站点:
http://192.168.x.x/AFNet - 访问第二个站点:
http://192.168.x.x/你的第二个站点目录名 - 访问第三个站点:
http://192.168.x.x/你的第三个站点目录名
关键注意事项
- 防火墙设置:确保你的主机防火墙开放了对应的端口(80、8080、8081等),否则局域网内其他电脑无法连接。
- 固定局域网IP:建议给运行XAMPP的主机设置固定的局域网IP,避免IP变动导致访问失败。
- 配置验证:每次修改配置后,一定要用Apache的配置检查工具验证语法,避免重启失败。
内容的提问来源于stack exchange,提问作者Pawtang
相关产品推荐
相关产品推荐

