无需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
相关产品推荐
相关产品推荐

