xampp 默认不认 .htaccess,必须同时启用 mod_rewrite 模块并设置对应目录的 allowoverride all;.htaccess 需置于 public/ 目录下,且其父目录的 块中须包含 options +followsymlinks -multiviews 和 allowoverride all。

XAMPP 默认不认 .htaccess,直接放文件没用——必须同时开启 mod_rewrite 模块 + 把对应目录的 AllowOverride 改成 All。
确认 mod_rewrite 已启用
打开 XAMPP\apache\conf\httpd.conf,搜索:LoadModule rewrite_module modules/mod_rewrite.so。如果前面有 #,删掉;如果整行被注释或压根不存在,就手动加一行(独占一行,不能拼在别的行后面)。改完保存,重启 Apache。
验证方式:新建一个 phpinfo.php,内容为 <?php phpinfo(); ?>,浏览器访问,Ctrl+F 搜 mod_rewrite,出现在 “Loaded Modules” 列表里才算成功。
.htaccess 必须放在 public/ 目录下
ThinkPHP 6+ 的入口已统一移到 public/,.htaccess 如果放在项目根目录(比如 htdocs/myapp/),Apache 根本不会去读它——因为请求先到达的是 public/ 子目录,而该目录的 AllowOverride 可能仍是 None。
正确做法:
将 WCAG 2 AA 无障碍标准应用于设计系统、UI 组件和网页——通过可运行的验证器进行对比度计算,采用设计 token 模式使颜色天生可访问,设定排版和焦点状态规则,并提供语义检查清单。适用于构建或审查 UI。
- 把
.htaccess放进htdocs/myapp/public/ - 确保
httpd.conf中针对public/所在路径的<directory></directory>块里,AllowOverride是All - Windows 下建
.htaccess文件容易失败,推荐用命令行:cd /d htdocs\myapp\public && echo RewriteEngine On > .htaccess,再追加规则
规则里用 index.php/$1 还是 index.php?path=$1?
取决于 ThinkPHP 版本和路由配置:
- TP5.x 默认走
PATH_INFO,推荐用RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L] - TP6+ 默认用
s=参数接收路由,应改用RewriteRule ^(.*)$ index.php?s=$1 [QSA,L] - 如果用
index.php/$1却报 404,大概率是 PHP 没开启cgi.fix_pathinfo=1(XAMPP 默认关着);此时强行开可能有安全风险,不如换s=方式
常见 403 错误不是权限问题,而是 FollowSymLinks 缺失
很多 XAMPP 新版默认禁用了符号链接支持,导致 .htaccess 里的 Options +FollowSymLinks 触发 403。解决方法是在对应 <directory></directory> 块里显式加上:
Options +FollowSymLinks -Multiviews
注意:-Multiviews 要带上,否则可能干扰路由匹配;FollowSymLinks 和 AllowOverride All 必须在同一 <directory></directory> 块内生效,不能只改全局配置却漏掉子目录。
伪静态最脆弱的一环从来不是规则写得对不对,而是 Apache 配置里那几行看似无关的开关——它们全得对上号,.htaccess 才真正有机会被执行。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!










