如何批量修改WordPress Redirection插件所有重定向规则的Query Parameters
Redirection插件重定向规则存储位置与批量修改方法
一、重定向规则的存储位置
Redirection插件的所有重定向规则默认存储在WordPress数据库的wp_redirection_items表中(若你的WordPress使用了自定义数据库前缀,需将wp_替换为实际前缀,例如mywp_redirection_items)。
其中,控制「Query Parameters」匹配方式的配置,存放在该表的match_data字段中——该字段值为序列化的PHP数组,对应关系如下:
query: "exact_any"→ 「Exact match in any order」query: "ignore"→ 「Ignore all parameters」
二、批量修改Query参数的方法
操作前务必备份wp_redirection_items表或整个数据库,防止数据丢失。
方法1:数据库SQL直接修改(推荐)
如果你能访问数据库管理工具(如phpMyAdmin、Adminer),直接执行SQL是最高效的方式:
UPDATE wp_redirection_items SET match_data = REPLACE(match_data, 's:9:"exact_any";', 's:6:"ignore";') WHERE match_data LIKE '%s:9:"exact_any";%';
注意:替换语句中的
wp_为你的实际数据库前缀。此语句会自动将所有匹配「Exact match in any order」的规则,替换为「Ignore all parameters」,同时修正序列化字符串的长度标识,避免数据失效。
执行后登录WordPress后台,进入Redirection插件页面验证修改结果即可。
方法2:WP CLI命令(适合服务器SSH用户)
若你拥有服务器SSH权限,可使用WP CLI执行命令:
wp db query "UPDATE wp_redirection_items SET match_data = REPLACE(match_data, 's:9:\"exact_any\";', 's:6:\"ignore\";') WHERE match_data LIKE '%s:9:\"exact_any\";%';"
同样需将wp_替换为实际数据库前缀,执行后即可完成批量修改。
方法3:自定义PHP脚本(适合不熟悉SQL的用户)
创建临时PHP脚本处理序列化数据,避免手动修改序列化字符串出错:
<?php require_once('wp-load.php'); global $wpdb; $table_name = $wpdb->prefix . 'redirection_items'; // 获取所有需要修改的规则 $rules = $wpdb->get_results("SELECT id, match_data FROM $table_name WHERE match_data LIKE '%exact_any%'"); foreach ($rules as $rule) { $match_data = unserialize($rule->match_data); if (isset($match_data['query']) && $match_data['query'] === 'exact_any') { $match_data['query'] = 'ignore'; $updated_data = serialize($match_data); $wpdb->update( $table_name, ['match_data' => $updated_data], ['id' => $rule->id], ['%s'], ['%d'] ); } } echo '批量修改完成,请立即删除此脚本!'; ?>
- 将代码保存为
update-redirection-query.php,上传至WordPress根目录。 - 在浏览器访问
你的域名/update-redirection-query.php执行脚本。 - 执行完成后立即删除该脚本,避免安全风险。
- 登录后台验证修改结果。
内容的提问来源于stack exchange,提问作者Kapil Khandelwal
相关产品推荐
相关产品推荐

