xampp环境下typecho伪静态需三步生效:启用mod_rewrite模块、将allowoverride设为all以允许.htaccess覆盖、手动放置含正确rewritebase的.htaccess文件,后台“强制启用”仅为最后一步。

XAMPP环境下Typecho的伪静态不能只靠后台“启用地址重写”就生效,mod_rewrite 模块必须启用,且 .htaccess 文件权限要放开,否则所有非首页链接都会 404 或 403。
确认 Apache 已加载 mod_rewrite 模块
这是最常被跳过的一步。XAMPP 默认可能没启用重写模块,即使你写了 .htaccess 也完全不生效。
- 打开
XAMPP\apache\conf\httpd.conf - 搜索
LoadModule rewrite_module,确保这行前面没有#(即未被注释) - 如果被注释了,删掉开头的
#,保存文件 - 重启 Apache(通过 XAMPP 控制面板)
- 可选验证:访问
http://localhost/server-info(需开启mod_info),搜索rewrite看是否在已加载模块列表中
修改 httpd.conf 允许 .htaccess 覆盖规则
即使 mod_rewrite 开了,Apache 默认仍会忽略 .htaccess 里的重写指令,因为 AllowOverride 被设为 None。
- 仍在
httpd.conf中,搜索<directory></directory>或类似路径段(具体取决于你的 DocumentRoot) - 找到其中的
AllowOverride None,改为AllowOverride All - 同时确认该
<directory></directory>块里有Require all granted(旧版是Order allow,deny+Allow from all) - 保存并重启 Apache
Typecho 根目录必须存在正确 .htaccess 文件
很多用户以为后台开了“地址重写”就自动写规则,其实 Typecho 不会生成或写入 .htaccess,得手动放一个。
XAMPP 8.0.30 是一款免费、开源的跨平台 Web 服务器集成包,专为快速搭建本地 PHP 开发环境而设计。该版本核心组件包括:Apache 2.4.56、MySQL 8.0.33、PHP 8.0.30、phpMyAdmin 5.2.1 等。它支持 Windows、Linux 和 macOS 系统,可让开发者在个人电脑上轻松模拟服务器环境,无需复杂配置即可运行 WordPress、Thin
- 在 Typecho 网站根目录(即
htdocs/your-blog/)下新建或编辑.htaccess - 内容必须是 Apache 兼容格式,推荐用官方标准规则:
<ifmodule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]
</ifmodule>
注意:RewriteBase 值要和实际部署路径一致 —— 如果博客放在子目录如 /blog/,这里就得写 RewriteBase /blog/,否则重写会错位。
后台设置与常见报错处理
Typecho 后台“永久链接”页的检测逻辑很弱,它只检查 index.php 是否能被重写掉,不校验服务器真实配置是否生效。
- 进入后台 → 设置 → 永久链接 → 勾选「是否使用地址重写功能」
- 大概率出现红色提示「重写功能检测失败」——直接忽略,继续勾选「强制启用」并保存
- 如果保存后页面仍 404,优先检查浏览器地址栏是否还带
index.php;带说明重写根本没触发,回退查前三个步骤 - 如果出现 500 错误,大概率是
.htaccess语法错误或RewriteBase路径写错 - 如果首页正常、其他页面 403,说明
AllowOverride没改对,或目录权限没放开
真正卡住人的地方往往不是规则本身,而是 AllowOverride All 没配到 Typecho 所在的具体 <directory></directory> 块 —— XAMPP 的 httpd.conf 里可能有多个 <directory></directory>,只改了默认的 htdocs 主目录,却漏掉了你实际放博客的子目录路径。










