WordPress REST API返回404错误?WP API站点故障求助
解决WordPress REST API 404错误(因.htaccess清空导致)
嘿,我处理过不少这类问题——误清空.htaccess文件绝对是WordPress路由(包括REST API)罢工的常见原因。别担心,咱们一步步把它修好:
1. 恢复WordPress默认的.htaccess配置
WordPress的固定链接和REST API路由完全依赖.htaccess里的重写规则,清空后这些规则全没了,自然会返回404。你有两种方式恢复:
方式一:通过WordPress后台自动生成(推荐)
- 登录你的WordPress后台,进入「设置」→「固定链接」
- 不用改当前的固定链接结构,直接点击「保存更改」按钮
- 这会让WordPress自动检测服务器环境,并生成正确的.htaccess规则(前提是服务器允许WordPress写入该文件)
方式二:手动添加默认规则
如果后台无法自动写入(比如权限问题),可以通过FTP或文件管理器手动编辑.htaccess文件,添加以下内容:
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
如果你的站点启用了SSL(HTTPS),不需要额外修改规则,上面的默认配置已经兼容。
2. 检查.htaccess文件权限
如果手动添加规则后还是不行,大概率是文件权限不对,导致服务器无法读取规则:
- 通过FTP或文件管理器查看.htaccess的权限,应该设置为644
- 同时,WordPress根目录的权限要设置为755(避免权限过高带来安全问题)
3. 验证REST API是否恢复
完成上面两步后,打开浏览器访问 你的域名/wp-json/:
- 如果返回一堆JSON格式的数据(包含routes、namespace等字段),说明REST API已经正常工作
- 此时你之前用的ACF to REST API、WP REST API Frontpage、WP API Menus这些插件的端点(比如/wp-json/acf/v3/、/wp-json/frontpage/v1/等)也应该能正常访问了
4. 进阶排查(如果以上步骤无效)
如果还是404,那可能是服务器环境的问题:
- Apache服务器:确认
mod_rewrite模块已经启用。可以联系主机服务商,或者通过phpinfo页面查看该模块是否加载 - Nginx服务器:如果你的站点用的是Nginx,.htaccess规则是无效的,需要在Nginx配置文件中添加WordPress重写规则:
添加后需要重启Nginx服务location / { try_files $uri $uri/ /index.php?$args; }
内容的提问来源于stack exchange,提问作者enrique-ramirez
相关产品推荐
相关产品推荐

