Apache服务器中开发站点转生产站点后故障排查求助
WordPress站点迁移后URL异常及资源加载问题解决方案
1. 全局替换数据库中残留的旧URL
仅修改wp_options表的siteurl和home字段远远不够,文章内容、附件链接、主题/插件配置里可能大量残留旧域名引用,需执行全局替换SQL(替换为你的实际域名,注意表前缀是否为wp_):
UPDATE wp_posts SET post_content = REPLACE(post_content, 'https://dev.web.com', 'https://new.web.com'); UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, 'https://dev.web.com', 'https://new.web.com'); UPDATE wp_options SET option_value = REPLACE(option_value, 'https://dev.web.com', 'https://new.web.com');
2. 修正Apache虚拟主机与重写规则
- 确保新域名
new.web.com的虚拟主机配置正确,开启AllowOverride All以支持.htaccess:
<VirtualHost *:443> ServerName new.web.com DocumentRoot /path/to/your/site-root <Directory /path/to/your/site-root> AllowOverride All Require all granted </Directory> # 以下为SSL必填配置(若使用HTTPS) SSLEngine on SSLCertificateFile /path/to/your/cert.pem SSLCertificateKeyFile /path/to/your/private-key.pem </VirtualHost>
- 检查站点根目录的
.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
3. 清除缓存与修复静态资源路径
后台CSS/JS缺失、图片损坏多是资源路径未更新或缓存导致:
- 强制刷新浏览器缓存(Ctrl+F5 / Cmd+Shift+R)
- 若使用缓存插件(如WP Rocket、W3 Total Cache),进入后台清空所有缓存
- 检查主题/插件的自定义设置面板,部分主题会硬编码资源路径,需手动替换为新域名
4. 验证wp-config.php配置正确性
确保WP_HOME和WP_SITEURL的定义放在/* That's all, stop editing! Happy publishing. */之前,无语法错误:
define('WP_HOME','https://new.web.com'); define('WP_SITEURL','https://new.web.com');
注:定义这两个常量后,后台「设置-常规」的URL选项会变为只读,避免误修改
5. 检查站点文件权限
确保Apache进程拥有站点目录的读写权限,执行以下命令(Linux环境):
# 设置目录权限为755,文件权限为644 find /path/to/your/site-root -type d -exec chmod 755 {} \; find /path/to/your/site-root -type f -exec chmod 644 {} \; # 变更目录所属用户为Apache默认用户(www-data) chown -R www-data:www-data /path/to/your/site-root
内容的提问来源于stack exchange,提问作者user3697928
相关产品推荐
相关产品推荐

