phpEnv 默认禁用 mod_rewrite 和 .htaccess,需手动启用:取消 httpd.conf 中 LoadModule rewrite_module 注释,设 AllowOverride All,重启 Apache;确保 .htaccess 文件名正确、位于 www/ 根目录、有读取权限,并用 RewriteRule ^(.*?)$ index.php?url=$1 [QSA,L] 等兼容规则测试。

phpEnv 默认不启用 mod_rewrite,也不允许 .htaccess 生效,直接写规则会静默失败。
确认并启用 mod_rewrite 模块
phpEnv 的 Apache 配置文件通常位于 phpEnv\Apache\conf\httpd.conf(路径以你实际安装位置为准)。打开后需做两件事:
- 搜索
LoadModule rewrite_module,确保该行未被注释(即前面没有#);若整行被注释或根本不存在,手动添加:LoadModule rewrite_module modules/mod_rewrite.so - 搜索
AllowOverride,找到类似<directory></directory>的配置块,在其中加入或修改为:AllowOverride All(不能是None或留空) - 改完必须重启 Apache:在 phpEnv 控制面板中点击「重启 Apache」,仅「重载配置」无效
验证 .htaccess 是否真正被读取
即使模块开启、AllowOverride 设对,phpEnv 仍可能因路径权限或文件名问题跳过 .htaccess。常见现象是访问伪静态 URL 直接 404,且无任何错误提示。
将 WCAG 2 AA 无障碍标准应用于设计系统、UI 组件和网页——通过可运行的验证器进行对比度计算,采用设计 token 模式使颜色天生可访问,设定排版和焦点状态规则,并提供语义检查清单。适用于构建或审查 UI。
- 确保
.htaccess文件名**严格以英文点开头**(不是htaccess.txt或htaccess),Windows 下推荐用命令行重命名:rename htaccess.txt .htaccess - 把
.htaccess放在 phpEnv 的 Web 根目录下(默认是phpEnv\www\),而不是子文件夹里——除非你明确配置了对应子目录的<directory></directory>块 - 加一条最简测试规则:
RewriteRule ^test$ /index.php [R=302,L],然后访问http://localhost/test,跳转成功说明基础链路通了
写 RewriteRule 时注意 phpEnv 的路径上下文
phpEnv 的 Apache 多数基于较旧版本(如 2.4.x),且 DocumentRoot 默认指向 www/,这会影响 %{REQUEST_URI} 和正则匹配行为。
立即学习“PHP免费学习笔记(深入)”;
-
RewriteCond %{REQUEST_FILENAME} !-f和!-d是安全起点,但要确认你的静态资源(如/css/style.css)确实存在于www/css/下,否则条件误判会导致样式丢失 - 避免用
^/(.*)$开头的规则——^匹配的是去掉域名后的路径,而 phpEnv 中请求进来的 URI 已经不含主机名,也**不带起始斜杠**(例如访问/about,%{REQUEST_URI}是/about,但^about$才能匹配) - 推荐使用标准入口转发写法:
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L],然后在index.php中用$_GET['url']取值,兼容性最稳
最容易被忽略的是:phpEnv 的 Apache 启动用户(通常是当前 Windows 登录用户)必须对 .htaccess 文件有读取权限,右键属性 → 安全 → 检查“Users”组是否拥有“读取”权限——缺这个,规则照样不加载,且无日志可查。


















