要让 Apache 支持 URL 重写,需启用 mod_rewrite 模块、允许 .htaccess 使用重写规则、并在配置中开启 RewriteEngine On;三步缺一不可。
要让 apache 支持 url 重写,核心是启用 mod_rewrite 模块,并允许它在目标目录中生效。这不是装个插件就完事,而是涉及模块加载、权限配置和基础引擎开启三个关键环节。
确认并启用 mod_rewrite 模块
Apache 默认可能未启用该模块。需编辑主配置文件 httpd.conf(Linux 下常见路径为 /etc/apache2/apache2.conf 或 /usr/local/apache/conf/httpd.conf):
- 查找类似
#LoadModule rewrite_module modules/mod_rewrite.so的行,去掉开头的#取消注释 - 若整行不存在,手动添加该行(必须独占一行,路径需与实际模块位置一致)
- 保存后重启 Apache:如
sudo systemctl restart apache2(Debian/Ubuntu)或sudo apachectl restart(macOS / 源码安装)
允许 .htaccess 文件使用重写规则
如果打算用 .htaccess 方式配置(常见于共享主机或项目根目录),还需开放重写权限:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
- 在
httpd.conf中找到对应站点的<Directory>块(例如<Directory "/var/www/html">) - 将
AllowOverride None改为AllowOverride All,或至少包含FileInfo - 建议同时确认
Options包含FollowSymLinks(部分规则依赖此选项)
在配置中开启重写引擎
模块启用且权限放开后,还需显式打开引擎,否则所有规则不生效:
- 在
httpd.conf的虚拟主机段内,或项目根目录的.htaccess文件中,添加RewriteEngine On - 若使用
.htaccess,建议加上RewriteBase /(根目录)或具体子路径,避免相对路径解析异常 - 可加一句
<IfModule mod_rewrite.c>...</IfModule>包裹规则,提升容错性
完成这三步后,Apache 就具备了执行 RewriteRule 和 RewriteCond 的能力。后续只需按需编写映射规则,比如伪静态、HTTPS 强制或反向代理等。

















