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

无需php artisan serve运行Laravel项目?配置虚拟主机后遇404错误

解决Laravel虚拟主机配置后404错误的问题

兄弟,你这问题我碰到过好几次了,先揪出最明显的问题,再一步步排查其他可能的坑:

1. 先纠正访问方式(最可能的原因)

你现在访问的是localhost/hujjaj.dev,但配置虚拟主机的意义就是让你直接通过hujjaj.dev这个独立域名访问啊!虚拟主机绑定的ServerName hujjaj.dev是单独的主机名,和localhost没有关联,直接在浏览器地址栏输入hujjaj.dev试试,这大概率能解决你的404问题。

2. 确认虚拟主机配置文件是否被Apache启用

XAMPP默认是不开启虚拟主机配置的,你得手动打开:

  • 找到XAMPP安装目录下的apache\conf\httpd.conf文件
  • 搜索Include conf/extra/httpd-vhosts.conf这一行,把前面的#注释删掉
  • 保存文件后,完全重启Apache(不是只刷新,要停掉服务再重新启动)

3. 检查Laravel项目的目录权限

Windows下Apache有时候会因为权限不足访问不到文件:

  • 右键你的Laravel项目的public文件夹,选择「属性」→「安全」
  • 找到Users组,确保它拥有「读取和写入」的权限,没有的话添加权限并应用

4. 验证public目录下的.htaccess文件

Laravel的URL重写完全依赖这个文件,如果它丢失或者内容错误也会报404:

  • 确认C:\xampp\htdocs\hujjaj_app_new\public下存在.htaccess文件
  • 如果没有,新建一个,复制默认的Laravel配置内容:
<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes
    </IfModule>

    RewriteEngine On

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]

    # Send Requests To Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

5. 确认hosts文件修改生效

有时候修改hosts后不会立刻生效,需要刷新DNS缓存:

  • 打开命令提示符(CMD),输入ipconfig /flushdns回车
  • 然后再尝试访问hujjaj.dev

6. 查看Apache错误日志定位细节

如果上面的步骤都没用,去看你配置的错误日志logs/hujjaj.dev-error.log,里面会有具体的错误信息(比如路径不对、模块未加载等),根据日志再针对性解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 07:57:41