最直接可靠的方式是用命令行检查 Apache 实际加载的模块列表:Debian/Ubuntu 用 sudo apachectl -M | grep rewrite,CentOS/RHEL 用 sudo httpd -M | grep rewrite,若输出 rewrite_module (shared) 等即表示已加载;无输出则未加载。
最直接可靠的方式是用命令行检查 apache 实际加载的模块列表,而不是只看配置文件里有没有那行 loadmodule。
用 apachectl -M 查看已加载模块
运行以下命令(注意大小写):
-
Debian/Ubuntu 系统:
sudo apachectl -M | grep rewrite -
CentOS/RHEL 系统:
sudo httpd -M | grep rewrite
如果看到类似 rewrite_module (shared) 或 rewrite_module (static) 的输出,说明模块已成功加载。若无任何输出,表示未加载。
通过 phpinfo() 页面验证(适用于 PHP 环境)
在网站根目录下新建一个 info.php 文件,内容为:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
访问 http://your-domain.com/info.php,用 Ctrl+F 搜索 Loaded Modules,再搜 mod_rewrite。出现即代表 Apache 已启用该模块。
检查配置语法并确认模块路径正确
即使配置里写了 LoadModule rewrite_module modules/mod_rewrite.so,也可能因路径错误或文件缺失而静默失败:
- 先执行
sudo apachectl -t(或sudo httpd -t),确保返回 Syntax OK - 再运行
sudo apachectl -M(或sudo httpd -M),确认 rewrite 出现在列表中 - 若报错如
Cannot load ... undefined symbol,可能是模块 ABI 不兼容或依赖缺失
常见误区提醒
仅在配置文件中取消注释 LoadModule 并不等于模块已生效——必须重启服务且语法无误后,模块才真正载入。Apache 对无效或缺失的模块不会报错,而是直接跳过,所以“没报错”不等于“已加载”。

















