Apache伪静态配置核心三步:启用mod_rewrite模块、设置AllowOverride All允许.htaccess生效、在根目录创建含RewriteEngine On及规则的.htaccess文件,缺一不可。

Apache 伪静态配置核心就三步:启用 rewrite 模块、允许 .htaccess 生效、写好重写规则。不复杂,但漏掉任一环节都会失败。
启用 mod_rewrite 模块
打开 Apache 的主配置文件 httpd.conf(路径通常为 /usr/local/apache/conf/httpd.conf 或 C:\Apache24\conf\httpd.conf),找到这一行:
#LoadModule rewrite_module modules/mod_rewrite.so
把开头的 # 去掉,确保它独占一行且未被注释。如果整行不存在,就在 LoadModule 区块末尾手动添加:
LoadModule rewrite_module modules/mod_rewrite.so
允许目录读取 .htaccess
找到你网站根目录对应的 <Directory> 区块,例如:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
<Directory "/www">
把里面的 AllowOverride None 改成:
AllowOverride All- 同时确认该区块包含
Options FollowSymLinks(或Options Indexes FollowSymLinks) - 如果是 Apache 2.4+,还需加上
Require all granted(替代旧版的Order allow,deny+Allow from all)
创建并写入 .htaccess 规则
在网站根目录下新建一个名为 .htaccess 的文件(注意开头是英文点号,Windows 下可用记事本另存为“全部类型”来避免自动加 .txt 后缀)。
基础示例(兼容多数 PHP 应用):
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>
-
RewriteEngine On必须开启,否则所有规则无效 -
RewriteCond两行表示:仅当请求路径不是真实存在的文件或目录时,才触发重写 -
RewriteRule将所有请求转发给index.php统一处理(L 表示终止,QSA 保留原有查询参数)
重启 Apache 并验证
保存所有修改后,必须重启 Apache 才能生效:
- Linux 命令:
sudo apachectl restart或sudo systemctl restart httpd - Windows:通过服务管理器重启 Apache 服务,或使用 phpStudy 等集成环境点击“重启”
- 验证是否成功:访问一个不存在的 .html 路径(如
/test.html),若能正常显示页面内容(而非 404),说明伪静态已起作用

















