启用mod_rewrite需三步:一、取消httpd.conf中LoadModule rewrite_module modules/mod_rewrite.so的注释;二、在对应<Directory>块中设AllowOverride All和Options +FollowSymLinks;三、重启Apache并用httpd -M或phpinfo()验证加载成功。

Apache 开启重写模块(mod_rewrite)的关键操作是修改 httpd.conf 文件,确保模块被加载且配置合法。这一步看似简单,但漏掉细节就完全无效——因为 Apache 遇到未启用的模块时,会静默忽略所有 Rewrite 指令,连错误提示都不给。
找到并启用 rewrite_module 加载行
打开 httpd.conf(常见路径:Linux 下为 /etc/httpd/conf/httpd.conf 或 /usr/local/apache/conf/httpd.conf;Windows 下多为 C:\Apache24\conf\httpd.conf 或 XAMPP/WAMP 对应路径),搜索以下内容:
#LoadModule rewrite_module modules/mod_rewrite.so
把开头的 # 删除,让这一行变成:
LoadModule rewrite_module modules/mod_rewrite.so
使用ydata-profiling(前身为pandas-profiling)生成全面的数据质量报告,包含相关性分析、缺失值模式和基数检测。导出交互式HTML仪表板和JSON摘要。
注意:该行必须独占一行、不能有空格或中文字符;如果整行不存在,需手动添加到 LoadModule 区块末尾。
验证模块是否真正加载成功
仅改配置不等于生效。推荐两种方式确认:
- 运行命令检查(Linux Debian/Ubuntu):
sudo a2enmod rewrite && sudo systemctl restart apache2 - 运行命令检查(CentOS/RHEL):
httpd -M | grep rewrite或查看systemctl status httpd日志 - 建一个
info.php文件,内容为<?php phpinfo(); ?>,浏览器访问后在 “Loaded Modules” 区域查找mod_rewrite——出现即表示加载成功
配套设置不可省略
rewrite 模块启用只是第一步。若后续要用 .htaccess 写规则,还必须同步完成两项关键配置:
- 找到网站根目录对应的
<Directory>块(例如<Directory "/var/www/html">) - 将其中的
AllowOverride None改为AllowOverride All(或至少AllowOverride FileInfo) - 在同一
<Directory>块内补充Options +FollowSymLinks(多数规则依赖此项,否则可能报 500 错误)
改完必须重启 Apache:sudo systemctl restart httpd(CentOS)或 sudo systemctl restart apache2(Debian/Ubuntu)。
常见失败原因提醒
很多配置“看起来对”,却始终不生效,往往卡在这几个地方:
- 模块加载行被注释了,或拼写错误(如
mod_rewrite写成mod_rewritee) - 改了主配置,但虚拟主机(
<VirtualHost>)里没单独配<Directory>权限 - 用了 .htaccess 却忘记设
AllowOverride All,Apache 直接跳过该文件 - 重启服务失败(例如配置语法错误),导致改动根本没加载——务必检查
sudo apachectl configtest输出

















