测试REST API出现404错误,如何通过.htaccess进行站点认证?
通过.htaccess为WordPress REST API添加认证
1. 全局REST API基础认证
在站点根目录的.htaccess文件中添加以下规则,对整个wp-json路径启用HTTP基础认证:
<FilesMatch "wp-json"> AuthType Basic AuthName "REST API Protected Zone" AuthUserFile /绝对路径/到/你的/.htpasswd Require valid-user </FilesMatch>
AuthUserFile需替换为服务器上.htpasswd文件的绝对路径,该文件可通过htpasswd工具生成(示例:htpasswd -c .htpasswd 用户名创建首个用户)。
2. 仅保护指定REST API端点
若只需针对你测试的/wp/v2/types/post端点做认证,可使用Rewrite规则精准匹配:
RewriteEngine On RewriteBase / RewriteRule ^wp-json/wp/v2/types/post - [E=PROTECTED:1] <If "%{ENV:PROTECTED} == '1'"> AuthType Basic AuthName "Restricted API Endpoint" AuthUserFile /绝对路径/到/你的/.htpasswd Require valid-user </If>
关键注意事项
- 确保Apache服务器已启用
mod_auth_basic模块,以Ubuntu为例,执行sudo a2enmod auth_basic后重启Apache服务。 .htpasswd文件需放置在网站根目录以外的位置,防止被公开访问。- 测试认证时,需携带用户凭证发起请求,示例curl命令:
curl -u 用户名:密码 https://valbrunpro.com/wp-json/wp/v2/types/post?context=edit - 补充:你的404错误若并非认证问题导致,建议检查WordPress固定链接设置,确保已保存过固定链接配置(后台「设置」→「固定链接」),触发WordPress生成正确的重写规则。
内容的提问来源于stack exchange,提问作者Undergrad
相关产品推荐
相关产品推荐

