Apache服务静态HTML的默认页、大小写及目录列表配置
Apache静态站点3项配置实操方案(Docker部署适用)
1. 将default.html设置为默认访问首页
Apache通过DirectoryIndex参数定义目录访问时的默认首页优先级,配置方式:
- 定位到站点静态文件目录对应的
<Directory>配置块,官方httpd镜像默认静态目录为/usr/local/apache2/htdocs,Debian系apt安装的Apache默认静态目录为/var/www/html - 在配置块内添加/修改如下规则,靠前的文件匹配优先级更高:
DirectoryIndex default.html index.html
配置生效后,访问站点根目录或任意子目录时,会优先查找目录下的default.html作为返回页面,找不到时才会回退加载index.html。
2. 配置访问时忽略文件名大小写
该功能依赖Apache官方自带的mod_speling模块(模块名仅含1个字母l,为官方固定命名),配置步骤:
- 先启用模块:Debian/Ubuntu系统执行
a2enmod speling;官方httpd镜像、CentOS系默认已编译该模块,只需在配置中确认加载规则存在:LoadModule speling_module modules/mod_speling.so - 在对应站点的
<Directory>配置块内添加规则:
CheckSpelling On CheckCaseOnly On
配置说明:
CheckCaseOnly On表示仅做文件名大小写的模糊匹配,不会自动修正拼写缺漏、多字的错误,避免非预期的文件匹配。
配置重启生效后,链接写viewlist.html即可自动匹配到服务器上实际存储的ViewList.html文件。
3. 开启目录文件列表展示
目录列表功能由mod_autoindex模块提供,绝大多数发行版、官方镜像默认已加载该模块,只需开启目录索引权限:
- 在静态文件根目录对应的
<Directory>配置块内,给Options参数添加Indexes权限,示例配置块:
<Directory /usr/local/apache2/htdocs> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory>
规则说明:如果访问的目录下存在
DirectoryIndex配置的默认首页文件,会优先返回首页内容;仅当目录下无匹配的默认首页时,才会展示该目录下的全量文件/子目录列表。
Docker镜像构建配置参考
不需要进入运行中的容器手动修改配置,直接在构建镜像时把自定义配置覆盖进镜像即可,示例Dockerfile:
# 基于官方Apache 2.4镜像构建 FROM httpd:2.4 # 拷贝本地静态HTML文件到站点根目录 COPY ./your-static-files/ /usr/local/apache2/htdocs/ # 拷贝写好上述三项配置的httpd.conf,覆盖镜像内默认配置 COPY ./httpd.conf /usr/local/apache2/conf/httpd.conf
构建完成后直接启动容器,三项配置即可全部生效。
内容的提问来源于stack exchange,提问作者craig
相关产品推荐
相关产品推荐

