UpdraftPlus 恢复后,WordPress 经常出现:
未找到 您浏览的页面未找到。也许搜索能帮到您。
这是因为 固定链接(permalink)损坏 或 .htaccess 缺失。
按照下面步骤操作即可修复。
第一步:确认 WordPress 容器正常运行
docker ps
你应该看到类似:
CONTAINER ID NAMES STATUS
xxxxxxxxxxxx wordpress Up 10 minutes
如果未运行:
docker start wordpress
第二步:进入 WordPress 容器
docker exec -it wordpress bash
cd /var/www/html
第三步:检查 .htaccess 是否存在
ls -al /var/www/html/.htaccess
如果文件不存在(大部分情况都是)
请执行:
cat > /var/www/html/.htaccess << 'EOF'
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
EOF
修复权限:
chown www-data:www-data /var/www/html/.htaccess
第四步:修复固定链接(最重要的一步)
如果你能进入 WordPress 后台:
进入后台 → 设置 → 固定链接
选择你原来的 URL 结构(如文章名) 什么都不要改,直接点“保存更改”
这会自动刷新 WordPress rewrite 规则。
刷新网站即可恢复。
如果你无法进入后台(例如后台也 404)
我们使用 WP-CLI 自动修复。
1. 确认 WP-CLI 是否存在
容器内:
wp --info
如果不存在则安装:
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar
mv wp-cli.phar /usr/local/bin/wp
2. 用 WP-CLI 重建固定链接规则
wp rewrite flush --hard
如果你看到:
Rewrite rules flushed.
说明已成功修复。
第五步(可选):修复文件权限
恢复备份后权限可能会乱:
chown -R www-data:www-data /var/www/html
chmod -R 755 /var/www/html
第六步(可选):禁用所有插件(如果仍然 404)
UpdraftPlus 恢复后插件经常冲突。
禁用插件:
mv wp-content/plugins wp-content/plugins.bak
mkdir wp-content/plugins
刷新网站,如果正常了,就是插件的问题。
恢复插件:
rm -rf wp-content/plugins
mv wp-content/plugins.bak wp-content/plugins
完成:网站应该已经恢复正常
如果你按以上步骤完成,WordPress 任何 “未找到页面” 错误都会被修好。