用 alias 可实现 url 到任意物理路径的内部映射,地址栏不变、无额外请求;需配对同路径的 directory 块并设 require all granted,且仅在主配置中有效。

想让某个 URL 直接对应服务器上任意位置的文件夹,且地址栏不变、不发新请求,用 Alias 就对了——它不是跳转,而是“悄悄换路径”,性能接近零开销。
Alias 指令必须配对 Directory 权限才生效
只写 Alias /media /srv/uploads 是无效的。Apache 默认禁止访问 DocumentRoot 外的路径,否则返回 403 Forbidden。
-
<directory></directory>的路径必须和 Alias 后的真实物理路径完全一致(建议统一不带尾部斜杠) - Apache 2.4+ 必须包含
Require all granted - 若目标含符号链接,需加
Options FollowSymLinks,并确认文件系统允许该操作 - 该
<directory></directory>块必须紧接在 Alias 行之后,或至少在同一配置上下文内(如<virtualhost></virtualhost>中)
别把 Redirect 当成 Alias 用
Redirect 是发 HTTP 301/302 响应,浏览器地址栏会变;Alias 是内部映射,用户无感,也不多一次网络往返。
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
- 错误写法:
Redirect /static /var/www/assets→ 浏览器跳到 /var/www/assets,404 或暴露路径 - 正确写法:
Alias /static /var/www/assets+ 对应<directory></directory> - 两者不能共用同一 URL 前缀,Apache 按配置顺序匹配,Alias 匹配成功后不会继续检查 Redirect
配置位置和语法细节不能错
Alias 只能在主配置文件(如 httpd.conf 或 /etc/apache2/sites-enabled/xxx.conf)中使用,.htaccess 里写无效。
- URL 路径必须以
/开头,不能含查询参数或正则 - 物理路径推荐绝对路径;相对路径会相对于
ServerRoot,极易出错 - 顺序是:先写 URL 路径,再写物理路径 —— 颠倒会导致 Apache 启动失败
- 末尾斜杠有语义:
Alias /data /srv/data和Alias /data/ /srv/data/行为不同,后者要求请求 URL 必须带/
需要正则?优先考虑 AliasMatch,但别滥用
AliasMatch 支持正则捕获(如 $1),适合动态路径模式,比如 /img/2024/05/photo.jpg → /storage/images/2024/05/photo.jpg。
- 每次请求都要执行 PCRE 解析,比普通 Alias 略慢,简单映射不用它
- 避免宽泛模式如
^/(.*)$,容易覆盖其他规则或意外匹配 - 正则只在
AliasMatch右侧生效,Alias不支持变量替换 - 真要转发 API 请求,请用
mod_proxy + ProxyPass,AliasMatch 只是拼路径,不通信









