WordPress 5.8.1环境下无法访问WooCommerce REST API如何解决?
解决方案
你一共遗漏了3项核心配置,按优先级排查:
1. 启用Apache rewrite模块
官方WordPress Apache镜像默认未开启rewrite模块,这是REST API 404的最常见原因,执行以下操作:
- 进入WordPress容器:
docker exec -it 你的wordpress容器名 /bin/bash - 启用rewrite模块:
a2enmod rewrite - 重启Apache服务:
service apache2 restart
2. 修正Apache站点目录权限配置
默认Apache配置禁止站点目录读取.htaccess文件,需要手动修改:
- 编辑Apache站点配置文件,路径通常为
/etc/apache2/sites-available/000-default.conf - 在
<VirtualHost *:80>区块内添加如下配置:
<Directory /var/www/html> AllowOverride All </Directory>
- 保存后再次重启Apache服务
3. 正确配置WordPress固定链接
WordPress没有单独的「启用固定链接」复选框,只要不选择默认的*「朴素」*选项即为启用:
- 进入
设置>固定链接页面,选择除「朴素」外的任意选项(推荐「文章名」) - 点击保存更改,系统会自动在站点根目录生成
.htaccess规则 - 如果保存后提示没有权限写入
.htaccess,手动在站点根目录创建.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
- 给
.htaccess文件设置正确权限:chown www-data:www-data /var/www/html/.htaccess
配置持久化说明
如果不想每次重启容器都重复上述配置,可以在docker-compose.yml中给WordPress服务添加自定义启动命令,或者基于官方镜像构建自定义镜像打包配置。
验证步骤
全部配置完成后,先访问http://localhost:8180/wp-json/,如果返回JSON格式的接口列表即为配置成功,再访问WooCommerce相关接口即可正常返回。
内容的提问来源于stack exchange,提问作者Jannis Ioannou
相关产品推荐
相关产品推荐

