WordPress迁移至独立主机后SMTP插件导致admin-ajax.php异常
解决WordPress迁移后SMTP插件失效及admin-ajax.php异常问题
1. 修复HTTP/HTTPS混合引用问题
日志中referer为HTTP但网站实际使用HTTPS,这是触发AH01630错误的核心原因:
- 检查站点URL配置:后台「设置-常规」中,确保「WordPress地址(URL)」和「站点地址(URL)」均为HTTPS开头的完整域名。
- 强制全站HTTPS:在
wp-config.php末尾添加代码:define('FORCE_SSL_ADMIN', true); if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') { $_SERVER['HTTPS'] = 'on'; } - 批量替换数据库旧链接:用phpMyAdmin执行SQL(替换
http://yourdomain.com为你的HTTPS域名):UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://yourdomain.com', 'https://yourdomain.com'); UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, 'http://yourdomain.com', 'https://yourdomain.com');
2. 解决Apache服务器拒绝请求(AH01630错误)
该错误为Apache权限配置导致:
- 修正目录权限:WordPress根目录及子目录设为
755,文件设为644,wp-config.php可设为600。 - 重置
.htaccess规则:备份现有规则后,替换为WordPress默认配置:# 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 - 检查虚拟主机权限:若主机商允许,确认虚拟主机配置中
/path/to/your/wordpress目录下有Require all granted规则,避免Require all denied限制。
3. 排查SMTP连接失败问题
针对「can't connect to the host」错误:
- 核对SMTP参数:确认服务器地址、端口(SSL用465,TLS用587)、加密方式、账号密码完全正确。
- 测试端口连通性:通过SSH执行
telnet smtp.yourserver.com 587,检查主机出站端口是否被防火墙封禁。 - 临时关闭SSL验证:部分主机SSL证书配置异常,可在SMTP插件设置中关闭「验证SSL证书」选项测试。
- 切换传输方式:尝试选择插件中的「PHP Mail」模式,排除SMTP服务器端问题。
4. 修复admin-ajax.php加载异常
- 排查插件冲突:禁用所有非SMTP插件,仅保留目标SMTP插件测试,逐步排查冲突插件。
- 排除主题干扰:临时切换到WordPress默认主题(如Twenty Twenty-Four),确认是否为主题自定义代码导致的请求阻塞。
内容的提问来源于stack exchange,提问作者Michelangelo Gelardi
相关产品推荐
相关产品推荐

