DocumentRoot 是 Apache 部署静态网站的核心配置,指定用户访问时读取文件的根目录;必须配合同路径的 <Directory> 块设置权限,并对 SPA 启用 mod_rewrite 重写规则以支持 history 路由。

Apache 部署静态网站时,DocumentRoot 是核心配置项,它决定了用户访问域名或IP时,Apache 从哪个目录读取并返回网页文件(如 index.html、CSS、JS、图片等)。配置错误会导致 403 Forbidden、404 Not Found 或空白页。
确认网站文件存放位置
前端构建产物(如 Vue/React 的 dist 目录)需先生成并放在服务器上一个可访问的路径,例如:
- /var/www/html/my-vue-app(推荐用于 Linux 生产环境)
- /srv/www/dist(符合 FHS 标准,适合长期维护)
- F:/Apache24/dist(Windows 下常见路径,如你知识库中所示)
确保该目录存在,且包含有效的 index.html 及相关资源。建议用 ls -l(Linux)或资源管理器(Windows)验证文件权限和结构。
修改主配置文件中的 DocumentRoot
编辑 Apache 主配置文件(Linux:/etc/httpd/conf/httpd.conf;Windows:conf/httpd.conf),找到并修改两处关键内容:
立即学习“前端免费学习笔记(深入)”;
通过PDFAPIHub云API将office文档(DOCX、DOC、PPT、PPTX、XLS、XLSX、CSV、TXT、ODT、RTF)转换为PDF,文档上传至pdfapihub.com完成转换。
-
DocumentRoot:指定根目录绝对路径
DocumentRoot "/var/www/html/my-vue-app" -
<Directory> 块:必须与 DocumentRoot 路径严格一致,并启用访问权限
<Directory "/var/www/html/my-vue-app"> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory>
注意:AllowOverride All 支持 .htaccess(对 Vue Router history 模式很重要);Require all granted 替代旧版的 Order allow,deny + Allow from all(Apache 2.4+ 必须用此写法)。
处理前端路由(如 Vue Router history 模式)
若前端使用 history 模式(URL 无 #),直接访问 /user 会 404——因为 Apache 默认只找物理文件。需启用 mod_rewrite 并添加重写规则:
- 确保模块已加载:
LoadModule rewrite_module modules/mod_rewrite.so(通常默认开启) - 在
<Directory>块内加入:
RewriteEngine On
RewriteBase /
RewriteRule ^index\.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.html [L]这段规则表示:当请求的不是真实文件(!-f)也不是真实目录(!-d)时,统一返回 index.html,交由前端路由接管。
重启服务并验证
保存配置后,执行:
- Linux:
sudo systemctl restart httpd或sudo apachectl restart - Windows:
httpd -k restart(确保以管理员身份运行命令行)
然后访问 http://服务器IP/,应看到首页。检查浏览器开发者工具的 Network 标签页,确认 HTML、JS、CSS 均返回 200 状态码;若出现 403,请检查目录权限和 SELinux(Linux)或 Windows 文件安全属性。

















