本地PHP环境支持伪静态需启用Apache的mod_rewrite模块:取消httpd.conf中“LoadModule rewrite_module modules/mod_rewrite.so”的注释,并配置.htaccess重写规则。

本地 PHP 环境(如 XAMPP、WAMP、MAMP 或 Laragon)要支持伪静态,核心是启用并正确配置 Apache 的 mod_rewrite 模块,再配合项目根目录的 .htaccess 文件写好重写规则。Nginx 用户需修改 server 块配置,但本地常见环境多为 Apache,以下以 Apache 为主说明。
确认并开启 mod_rewrite 模块
伪静态依赖 Apache 的重写引擎,必须确保已启用:
- 打开 Apache 配置文件
httpd.conf(XAMPP 路径通常为xampp\apache\conf\httpd.conf) - 搜索
#LoadModule rewrite_module modules/mod_rewrite.so,去掉前面的#取消注释 - 再搜索
,找到你项目所在的目录段(如 ),确认其中包含:AllowOverride All(不能是None,否则 .htaccess 不生效) - 保存后重启 Apache 服务
在项目中添加 .htaccess 文件
将 .htaccess 放在网站根目录(如 htdocs/myproject/),内容示例如下(适配常见 PHP 框架或自定义路由):
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?path=$1 [QSA,L]
说明:
立即学习“PHP免费学习笔记(深入)”;
本版本为春节前最后版本,主要是改进SP2的BUG以及处理多版本共存问题。V3将在春节后公布开发进度!改进以下功能: 后台帐号admin 密码:3hooCMS 程序版本:3hooCMS V2 SP2修正组件支持,后台提供组件支持设置,无组件环境关闭组件支持也可以使用。 修正默认模版IE6兼容问题。 重写伪静态规则,空间支持伪静态可以后台开启伪静态。 更新双语默认模版。 默认模版重写调用演示!写出最大
-
RewriteEngine On:开启重写功能 - 两个
RewriteCond表示“如果请求的不是真实存在的文件或目录”,才执行重写 -
RewriteRule把所有请求转发给index.php,并把原始路径作为path参数传入(Laravel、ThinkPHP 等框架常用此逻辑) -
QSA保留原有查询参数,L表示这是最后一条规则
验证伪静态是否生效
写个简单测试页验证:
- 创建
index.php,内容: - 访问
http://localhost/myproject/test/123(注意没有 .php 后缀) - 若页面输出
array(1) { ["path"]=> string(7) "test/123" },说明伪静态已生效 - 若提示 404 或直接下载/显示 .htaccess 文件,检查模块是否启用、
AllowOverride是否为All、.htaccess 文件名是否拼写正确(注意开头的点)
SEO 友好建议(本地调试阶段就该注意)
伪静态不只是让 URL 好看,更是 SEO 基础:
- URL 尽量用小写字母、短横线分隔(如
/article/how-to-set-rewrite-rule),避免下划线和大写 - 保持路径层级简洁,3 层以内为佳(如
/category/post/title比/a/b/c/d/e/f更友好) - 在
.htaccess中统一强制 www 或非 www、http → https(上线前补上,本地可暂不设) - 配合 PHP 代码生成规范的
,避免重复内容
本地环境伪静态不复杂但容易忽略细节,关键是模块、权限、规则三者到位。调通后,上线到 Linux 主机基本无需改动;若用 Nginx,则需把 .htaccess 规则转成 location 块写法,逻辑一致,只是语法不同。










