在 linux 系统下检查 apache 是否正确加载了 mod_rewrite 模块,最直接的方法是使用命令行工具查询已加载的模块列表。通过执行 apachectl -m 或 httpd -m 命令,可以在输出结果中查找是否存在 rewrite_module (shared)。如果该模块存在,说明 apache 已经成功加载了此模块;如果未找到,则说明模块未启用或未正确配置。

如何确认配置文件中的模块加载指令是否生效
除了直接查询运行状态,还可以检查 Apache 的主配置文件(如 httpd.conf)或模块配置目录(如 conf.modules.d/)中是否包含加载 mod_rewrite 的指令。通常,这行指令是 LoadModule rewrite_module modules/mod_rewrite.so。如果该行被注释掉(以 # 开头),或者文件不存在,则模块不会加载。此外,在某些 Linux 发行版(如 Ubuntu/Debian)中,可以使用 a2enmod rewrite 命令来启用模块,该命令会自动创建符号链接并生成相应的加载配置。

通过Apache Tika Server REST API从1400多种文件格式中提取文本和元数据。处理PDF、DOCX、PPTX、电子邮件归档以及带有MIME类型检测的嵌入式文档提取。
#!/bin/bash
# 检查 apachectl 命令是否存在
if command -v apachectl &>/dev/null; then
CMD="apachectl"
elif command -v httpd &>/dev/null; then
CMD="httpd"
else
echo "Error: Neither apachectl nor httpd found."
exit 1
fi
# 查询已加载模块并过滤 rewrite
MODULES=$($CMD -M 2>/dev/null)
if echo "$MODULES" | grep -q "rewrite_module"; then
echo "Success: mod_rewrite is loaded."
echo "Details: $(echo $MODULES | grep 'rewrite_module')"
else
echo "Failed: mod_rewrite is NOT loaded."
echo "Please check your configuration or enable it using a2enmod."
fi
当模块加载后,如何在 .htaccess 中验证其实际功能
即使模块已加载,还需要确保 Apache 允许在目录级别使用重写规则。这需要在配置文件中将对应目录的 AllowOverride 设置为 All 或至少包含 FileInfo。如果 AllowOverride 为 None,即使模块已加载,.htaccess 中的 RewriteEngine On 指令也会被忽略。可以通过创建一个简单的测试 .htaccess 文件,尝试重定向一个请求,观察服务器是否返回预期的 301 或 302 状态码,从而验证模块不仅加载了,而且正在正常工作。

<directory>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</directory>









