Apache 的模块化架构和按目录配置方式,使其在共享主机与传统应用中尤为常见。本动手课程介绍 Ubuntu 上的 Apache 工作流,从软件包和服务管理,逐步推进到用户站点、基于名称的虚拟主机、.htaccess、重定向和 URL 改写。
你将从默认文档根目录和用户的 public_html 提供内容,使用 Apache 辅助命令启用站点与模块,并通过 curl 验证行为。最终挑战会托管预置 legacy 站点、开放目录级覆盖、添加永久重定向,并通过内部改写提供简洁 URL。
你将学到什么
- 安装
apache2软件包、启动服务并在/var/www/html部署页面 - 启用
mod_userdir、设置目录遍历权限并提供~labex用户站点 - 使用
a2ensite创建并启用基于名称的 VirtualHost - 通过限定目录的
AllowOverride All开放按目录配置 - 创建
.htaccess重定向并验证状态码和Location响应头 - 启用
mod_rewrite,编写精确匹配与捕获数字参数的改写规则 - 区分客户端可见的重定向和服务器内部 URL 改写
本课程适合谁
本中级课程适合需要在 Ubuntu 上托管或维护 Apache 站点的 Linux 管理员、DevOps 学习者、Web 开发者和支持工程师。对于站点维护者依赖 .htaccess 和简洁 URL 改写规则的共享主机与传统应用环境尤其相关。
前置要求: 掌握 Linux 终端、软件包、服务、权限、文件编辑和 sudo 基础。熟悉 HTTP 路径和状态码会有帮助。
学习环境: 使用 Apache 2、curl、预置本地站点内容以及 a2enmod、a2ensite 辅助工具的 Debian/Ubuntu 风格 LabEx Linux 终端。
常见问题
重定向练习和改写练习有什么区别?
重定向会在引导实验中返回 HTTP 302,或在最终挑战中返回永久 301,要求客户端访问另一个 URL。改写则在服务器内部转换请求,例如把 /about 映射到 index.html,或把 /product/123 映射到 product.php?id=123,浏览器无需使用内部目标地址。
为什么必须显式启用 .htaccess?
当 AllowOverride None 生效时,Apache 会忽略这些文件。你会为相关目录开放覆盖,此后修改 .htaccess 无需重启服务即可生效。这种灵活性会增加逐请求查找开销和配置面,因此集中管理的服务器通常更偏好主配置文件。
课程会讲 HTTPS、反向代理或身份认证吗?
不会。课程聚焦明文 HTTP 静态托管、用户目录、VirtualHost、重定向和改写。TLS 证书、代理模块、负载均衡、访问日志与密码认证均不在范围内。





