Apache启用mod_rewrite需三步:加载rewrite_module模块、在Directory中设AllowOverride FileInfo并配置FollowSymLinks和Require all granted、在.htaccess或虚拟主机中添加RewriteEngine On;最后configtest通过后重启服务。

Apache开启mod_rewrite模块,关键在三件事:加载模块、开放重写权限、启用重写引擎。缺一不可,顺序也不能乱。
确认并加载 rewrite_module
模块本身通常已随Apache安装,但默认可能未启用:
- Ubuntu/Debian 系统推荐直接运行:sudo a2enmod rewrite,它会自动创建符号链接并完成配置
- CentOS/RHEL 或源码安装用户,需手动编辑主配置文件(如 /etc/httpd/conf/httpd.conf 或 /usr/local/apache/conf/httpd.conf),找到或添加这一行:
LoadModule rewrite_module modules/mod_rewrite.so(确保前面没有 #) - 改完保存,暂不重启——先做完后续两步再统一验证
允许目录使用重写规则
即使模块加载了,.htaccess 或
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
- 编辑对应站点的配置(如 /etc/apache2/sites-available/000-default.conf 或虚拟主机文件)
- 找到
这类块(路径按实际调整) - 将 AllowOverride None 改为 AllowOverride FileInfo(更安全)或 AllowOverride All(开发常用)
- 同时确认该
块中包含 Options FollowSymLinks 和 Require all granted(Apache 2.4+)
显式开启重写引擎
模块和权限都到位后,必须主动打开开关,否则所有规则静默失效:
- 若用 .htaccess:在文件开头加一行 RewriteEngine On;建议包裹在
... 内提升容错性 - 若在虚拟主机配置中设置:在
或 块内直接写 RewriteEngine On(注意:该指令不继承,每个需要生效的上下文都要单独加) - 可顺带加 RewriteBase /(根目录)避免路径解析异常
验证与重启
全部配置完成后,别急着刷新网页:
- 先执行语法检查:sudo apachectl configtest(CentOS/RHEL)或 sudo apache2ctl configtest(Ubuntu/Debian),看到 Syntax OK 才继续
- 再重启服务:sudo systemctl restart apache2(Debian系)或 sudo systemctl restart httpd(RHEL系)
- 快速验证是否生效:在网站根目录建一个 .htaccess,内容仅一行 RewriteRule ^test$ /index.html [L],然后访问 /test 能跳转即成功









