使用Docker Compose部署WordPress后访问WooCommerce API出现404错误
WooCommerce API 404问题排查解决步骤
1. 刷新WordPress固定链接规则
- 登录WordPress后台,进入「设置」→「固定链接」
- 不要选择「朴素」格式,任选其他固定链接格式(如文章名、数字型),点击「保存更改」,即使之前已经保存过也重新执行一次,强制重写站点rewrite规则
- 重新访问
localhost:8000/wc-api/测试是否正常
2. 启用Apache rewrite模块
官方WordPress Docker镜像默认未开启rewrite模块,会导致伪静态规则不生效,手动启用步骤:
- 进入运行中的WordPress容器终端:
docker exec -it <你的WordPress容器名称/ID> bash - 执行启用rewrite模块命令:
a2enmod rewrite - 重启Apache服务:
service apache2 restart - 测试API访问是否恢复
如果需要避免容器重启后配置丢失,可以修改docker-compose.yml中wordpress服务配置,添加启动命令自动开启模块:
services: wordpress: # 保留原有配置不变,新增以下command字段 command: > bash -c "a2enmod rewrite && apache2-foreground"
修改后执行docker-compose up -d重启容器即可永久生效。
3. 校验.htaccess文件配置
- 检查本地挂载的
./wordpress目录下是否存在.htaccess文件,文件权限需设置为644,所属用户为www-data - 如果文件不存在或内容异常,替换为以下默认WordPress伪静态规则:
# 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
4. 验证WooCommerce API开关状态
- 登录WordPress后台,进入「WooCommerce」→「设置」→「高级」→「REST API」,确认API已启用,接口调用需要提前生成对应的消费者密钥对。
5. 临时验证方法
如果需要快速定位问题,可直接访问带参数的API地址测试:http://localhost:8000/?rest_route=/wc/v3/
如果该地址可以正常返回数据,即可确定是伪静态rewrite规则配置问题,按上述前三个步骤修复即可。
内容的提问来源于stack exchange,提问作者Eduardo Maciel
相关产品推荐
相关产品推荐

