Apache默认首页由DirectoryIndex指令严格控制:从左到右查找首个存在且可读的文件,顺序即优先级;须置于<VirtualHost>内<Directory>块等生效配置域,空格分隔多文件,修改后必须重载配置。

Apache 的默认首页不是靠文件名“碰运气”决定的,而是由 DirectoryIndex 指令严格控制——它定义了 Apache 访问一个目录(如 / 或 /blog/)时,按什么顺序查找并返回第一个存在的文件。
DirectoryIndex 的作用逻辑
该指令属于 mod_dir 模块(默认启用),行为简单直接:
- 从左到右依次检查配置中列出的文件名
- 找到第一个在目标目录下真实存在且可读的文件,立即返回并停止查找
- 若全部不存在,且未启用
Options Indexes,则返回 403 Forbidden - 大小写敏感:
index.php≠Index.php
必须写对位置才生效
DirectoryIndex 不是全局开关,它的作用范围取决于所处的配置块:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
- 写在
<VirtualHost>内的<Directory "站点根路径">中 → 只对该虚拟主机的指定目录生效(推荐做法) - 写在主配置文件(如
httpd.conf)的<IfModule dir_module>块中 → 影响所有未被覆盖的请求(全局默认) - 写在网站根目录下的
.htaccess文件里 → 仅对该目录及子目录生效,但要求对应<Directory>块中已设置AllowOverride All或至少AllowOverride Indexes
正确写法与常见错误
语法非常简洁,但细节极易出错:
- 多个文件名用空格分隔,不能用逗号、引号或换行
- 正确:
DirectoryIndex index.php home.php index.html - 错误:
DirectoryIndex "index.php", home.php(引号和逗号会被当作文件名一部分) - 顺序即优先级:把最想作为首页的文件放在最左边
- 如果目标文件是
dashboard.php,就必须确保它真实存在于 DocumentRoot 对应的物理目录中
改完必须重载,不能只保存
配置修改后不会自动生效,必须通知 Apache 重新加载规则:
- Linux/macOS:
sudo systemctl reload apache2(推荐)或sudo apachectl graceful - Windows(XAMPP/phpEnv):在控制面板中点击「Stop」再「Start」;或进
Apache\bin目录运行httpd.exe -k restart - 操作前可用
httpd -t(Windows)或apache2ctl configtest(Linux)验证语法是否正确

















