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

使用IP访问本地WebServer出现404-Not Found问题求助

解决本地Apache服务器IP访问404问题的实操方案

我太懂这种折腾到想抹系统的崩溃感了——之前装Laravel和Valet踩过类似的坑,咱们一步步来排查,应该能找到根源:

1. 先查npm框架是否改了Apache配置

有些前端脚手架或JS框架会悄悄修改本地服务器的路由规则,甚至改了Apache的核心配置:

  • 打开Apache主配置文件:sudo nano /etc/apache2/httpd.conf,检查DocumentRoot是否还是你项目的正确路径,有没有新增的奇怪RewriteRule或重定向规则。
  • 再看项目根目录的.htaccess文件(如果有的话),框架自动生成的规则可能只适配localhost,对IP访问不生效,比如有没有强制跳转到localhost的规则,临时注释掉试试。
  • 虚拟主机配置也要检查:sudo nano /etc/apache2/extra/httpd-vhosts.conf,确认没有把ServerName硬写成localhost,导致IP访问匹配不到对应的主机。

2. 排查端口冲突与残留服务

虽然你确认过端口,但npm相关服务(比如webpack-dev-server)很容易抢占Apache的端口:

  • 用命令查端口占用:lsof -i :80(假设Apache用80端口),如果看到除了httpd之外的进程(比如node),直接杀掉:kill -9 <进程PID>。
  • 临时改Apache端口试试:在httpd.conf里把Listen 80改成Listen 8081,重启Apache后用你的IP:8081访问,排除端口被干扰的可能。

3. 确保Apache绑定了本机IP

Apache默认可能只监听localhost,不对外网IP开放:

  • 打开httpd.conf,把Listen 80改成Listen 0.0.0.0:80(监听所有IP),或者直接写你的本机IP(比如Listen 192.168.1.100:80),然后重启Apache。
  • 要是用了虚拟主机,新增一个针对IP的主机配置:
    <VirtualHost *:80>
        DocumentRoot "/Users/你的用户名/Projects/你的项目目录"
        ServerName 192.168.1.100
        <Directory "/Users/你的用户名/Projects/你的项目目录">
            AllowOverride All
            Require all granted
        </Directory>
    </VirtualHost>
    
    替换成你实际的路径和IP,保存后重启Apache。

4. 清理npm相关的后台残留

有些npm服务会偷偷在后台运行,即使你关了终端也不停止:

  • 查所有node进程:ps aux | grep node,看到可疑的就杀掉,或者直接批量清理:killall node。
  • 临时移除项目的node_modules文件夹和package-lock.json,卸载当前装的npm框架,重启Apache看是否恢复正常——如果正常了,再逐个安装依赖排查是哪个包搞的鬼。

5. 检查Mac防火墙与网络

Mac的防火墙可能在装新软件后自动拦截了Apache的IP访问:

  • 打开「系统设置」→「网络」→「高级」→「防火墙」,确认httpd(Apache)被允许接收传入连接。
  • 另外,确认你用的IP是当前机器的正确IP:终端输入ipconfig getifaddr en0(WiFi)或ipconfig getifaddr en1(有线),别用了旧的IP地址。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 07:50:46