XAMPP中localhost未指向htdocs目录,跳转至Laravel子目录如何解决
嗨,这种情况我之前帮朋友排查过,大概率是Apache的站点根目录配置被修改,或者存在全局的.htaccess重定向规则导致的,下面给你一步步排查和解决的方法:
1. 检查Apache主配置文件(httpd.conf)
- 打开XAMPP控制面板,找到Apache模块,点击旁边的「Config」按钮,选择「Apache (httpd.conf)」打开配置文件。
- 找到
DocumentRoot和对应的<Directory>配置项,确认它们指向的是XAMPP的htdocs根目录,而不是htdocs/blog。正确的配置应该类似这样:DocumentRoot "C:/xampp/htdocs" <Directory "C:/xampp/htdocs"> - 如果这两行指向的是
htdocs/blog,修改成上面的正确路径,保存文件后重启Apache服务生效。
2. 排查虚拟主机配置(httpd-vhosts.conf)
- 如果你启用了虚拟主机,同样在Apache的Config菜单里选择「Apache (httpd-vhosts.conf)」。
- 查看里面的
<VirtualHost>配置块,确保默认的localhost虚拟主机的DocumentRoot是htdocs目录。示例正确配置:<VirtualHost *:80> ServerName localhost DocumentRoot "C:/xampp/htdocs" <Directory "C:/xampp/htdocs"> Options Indexes FollowSymLinks Includes ExecCGI AllowOverride All Require all granted </Directory> </VirtualHost> - 如果发现有指向
htdocs/blog的虚拟主机配置,要么修改它的DocumentRoot,要么删除多余的配置,保存后重启Apache。
3. 检查htdocs根目录的.htaccess文件
- 打开
htdocs目录,注意查看是否有隐藏的.htaccess文件(Windows系统需要先开启「显示隐藏文件」选项)。 - 如果存在这个文件,检查里面是否有强制重定向到blog目录的规则,比如类似这样的代码:
RewriteEngine On RewriteRule ^$ blog/index.php [L] - 如果有这类规则,要么删除对应的重定向行,要么直接删除整个
.htaccess文件(如果你不需要全局重定向的话),然后刷新浏览器测试。
4. 确认Laravel项目的本地配置
- 虽然概率较低,但可以顺带检查下
blog目录下Laravel项目的.htaccess——不过Laravel的.htaccess一般只作用于自身目录,不会影响上级的htdocs。 - 另外,查看Laravel项目根目录的
.env文件,确认APP_URL设置为http://localhost,这个主要影响项目内部跳转,不过也可以顺手确认下。
完成以上步骤后,重启Apache服务,再访问localhost应该就能正常指向htdocs根目录了。
内容的提问来源于stack exchange,提问作者Hidayat ullah
相关产品推荐
相关产品推荐

