You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

XAMPP服务器localhost访问异常求助:端口切换后虚拟主机失效

解决XAMPP中localhost访问404与虚拟主机端口冲突问题

我来帮你拆解和解决这个典型的Apache配置冲突问题,咱们一步步来:

一、先理清问题本质

  • 用80端口时,你的httpd-vhosts.conf配置大概率覆盖了Apache默认的localhost站点指向,导致直接访问localhost找不到对应根目录;但虚拟主机本身配置正确,所以能正常访问。
  • 改成8080端口后,默认的Apache根目录配置生效了,所以localhost:8080能访问,但虚拟主机的配置没同步更新端口,导致虚拟URL无法匹配到对应的站点。

二、具体修复方案

1. 恢复80端口下localhost的访问能力

打开XAMPP的Apache主配置文件httpd.conf,先确认默认根目录的配置没被注释或篡改:

<Directory "C:/xampp/htdocs">
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride All
    Require all granted
</Directory>

DocumentRoot "C:/xampp/htdocs"
<Directory "C:/xampp/htdocs">

然后打开httpd-vhosts.conf,必须保留默认localhost的虚拟主机配置,把这段加到文件末尾:

<VirtualHost *:80>
    DocumentRoot "C:/xampp/htdocs"
    ServerName localhost
</VirtualHost>

这样80端口下,localhost会正确指向htdocs目录,虚拟主机也能正常工作。

2. 让8080端口兼容虚拟主机

如果打算长期用8080端口,需要同步修改所有相关配置:

  • 在httpd.conf里找到Listen 80,改成Listen 8080
  • 打开httpd-vhosts.conf,把所有虚拟主机的<VirtualHost *:80>改成<VirtualHost *:8080>
  • 检查系统hosts文件(Windows路径:C:\Windows\System32\drivers\etc\hosts),确保虚拟域名的映射没问题,比如:
127.0.0.1   your-virtual-site.local

修改完所有配置后,一定要重启XAMPP的Apache服务,现在localhost:8080和你的虚拟URL应该都能正常访问了。

3. 排查80端口占用(可选)

如果80端口访问失败是因为被其他程序占用(比如IIS、迅雷、QQ音乐等),可以用Windows命令行排查:

netstat -ano | findstr ":80"

找到占用80端口的进程ID,在任务管理器里结束对应的进程,就能继续用80端口了。

最后验证

每次修改配置后重启Apache,分别测试:

  • 访问localhost(或localhost:8080),确认能看到XAMPP默认页面或你的项目目录
  • 访问你的虚拟URL,确认能正常打开对应的站点

内容的提问来源于stack exchange,提问作者Amr Ragab

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 07:30:23