更换旧域名至新域名后页面链接指向异常技术求助
域名更换后内部链接仍指向旧域名的解决方法
你的问题核心是网站内部内容硬编码了旧域名,当前的.htaccess仅处理了旧域名的外部跳转,但页面内生成的链接还是旧域名,导致点击后跳转错误。按以下步骤解决:
1. 修正网站核心配置的域名设置
不管你用的是CMS(如WordPress)还是自定义开发框架,首先要把站点的基础URL改成新域名https://edaysacademy.online:
- 若为WordPress:进入后台「设置→常规」,修改「WordPress地址(URL)」和「站点地址(URL)」;也可直接在
wp-config.php中添加:define('WP_HOME','https://edaysacademy.online'); define('WP_SITEURL','https://edaysacademy.online'); - 若为自定义框架:找到配置文件(如
.env、config.php)中的base_url或类似字段,替换为新域名。
2. 批量替换数据库中的旧域名
数据库中存储的文章内容、页面链接、菜单配置等大概率包含旧域名,需批量替换(操作前务必备份数据库):
以WordPress为例,执行以下SQL语句(替换表前缀wp_为你的实际前缀):
UPDATE wp_posts SET post_content = REPLACE(post_content, 'https://edaysacademy.org', 'https://edaysacademy.online'); UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, 'https://edaysacademy.org', 'https://edaysacademy.online'); UPDATE wp_options SET option_value = REPLACE(option_value, 'https://edaysacademy.org', 'https://edaysacademy.online');
非WordPress系统,需找到对应存储内容的表,执行类似替换逻辑。
3. 完善.htaccess配置
当前的.htaccess存在两个问题:重定向使用HTTP而非HTTPS,且丢失了强制HTTPS的规则。替换为以下配置:
RewriteOptions inherit RewriteEngine On # 强制所有请求使用HTTPS RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] # 将旧域名的请求永久跳转到新域名 RewriteCond %{HTTP_HOST} ^edaysacademy\.org$ RewriteRule (.*) https://edaysacademy.online/$1 [R=301,L] <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?/$1 [L] </IfModule>
4. 清除所有缓存
- 网站缓存插件(如WP Rocket、W3 Total Cache)的缓存;
- 服务器端缓存(如Nginx缓存、Apache缓存);
- CDN缓存(若使用);
- 本地浏览器缓存(按Ctrl+Shift+R强制刷新页面)。
内容的提问来源于stack exchange,提问作者Olayori Oluwafemi Samuel
相关产品推荐
相关产品推荐

