Laravel 10+XAMPP内网SSL配置后显示目录列表问题求助
问题分析与解决步骤
核心问题
你当前的配置存在两个关键问题:一是Apache虚拟主机的DocumentRoot未指向Laravel的Web入口目录public,导致访问时显示项目根目录列表;二是同时启动了Apache虚拟主机和Laravel内置服务器(php artisan serve),端口冲突且内置服务器未正确加载SSL配置。
1. 修正Apache虚拟主机配置
编辑C:/xampp/apache/extra/httpd-vhosts.conf,将配置修改为:
<VirtualHost *:444> DocumentRoot "C:/xampp/htdocs/project/public" ServerName abc.example.com SSLEngine on SSLCertificateFile "conf/ssl.crt/22112022.cer" SSLCertificateKeyFile "conf/ssl.crt/22112022-rsa.key" SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1 <Directory "C:/xampp/htdocs/project/public"> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> </VirtualHost>
修改说明:
- 将
DocumentRoot改为项目下的public目录(Laravel的Web请求入口) ServerName无需携带端口,VirtualHost监听*:444即可覆盖所有IP- 优化SSL协议,禁用老旧不安全的TLS版本(可选但推荐)
- 同步更新
Directory路径至public目录
2. 启用Apache必要模块
打开C:/xampp/apache/conf/httpd.conf,确保以下模块未被注释(去掉行首的#):
LoadModule rewrite_module modules/mod_rewrite.so LoadModule ssl_module modules/mod_ssl.so
同时确认虚拟主机配置文件已被加载:
Include conf/extra/httpd-vhosts.conf
3. 重启服务,停止冲突进程
- 关闭正在运行的
php artisan serve进程(按Ctrl+C) - 在XAMPP控制面板中重启Apache服务
4. 测试访问
直接访问https://abc.example.com:444,此时应正常加载Laravel项目首页,而非目录列表。
额外说明
Laravel内置服务器(php artisan serve)仅适合本地开发测试,不支持直接加载SSL证书,内网正式环境优先使用Apache/Nginx等Web服务器配置虚拟主机,稳定性和性能更优。
内容的提问来源于stack exchange,提问作者user2338456
相关产品推荐
相关产品推荐

