You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress迁移新主机后除首页外所有页面无法加载求助

解决WordPress迁移后子站点页面跳转至上层目录的问题

我帮你梳理几个最可能的原因和对应的解决步骤,亲测能解决这类迁移后的路由失效问题:

1. 先修正.htaccess的RewriteBase路径

你的站点放在.../public_html/directory_name/site/子目录里,默认生成的.htaccess大概率没设置正确的RewriteBase,导致路由规则指向了上层目录。

打开站点根目录(也就是site/文件夹)下的.htaccess文件,把开头的规则改成这样:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /directory_name/site/  # 这里必须和你的站点实际路径完全匹配
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /directory_name/site/index.php [L]
</IfModule>
# END WordPress

改完保存,刷新页面试试能不能打开内页。

2. 强制更新固定链接规则

有时候哪怕.htaccess改对了,WordPress的固定链接缓存还没更新,得手动触发一下:

  • 如果能登录那个正常的站点,或者你能通过其他方式进后台,直接去设置→固定链接页面,啥都不用改,点一下「保存更改」就行——这会让WP重新生成适配当前目录的路由规则,还会自动更新.htaccess(只要权限够)。
  • 要是后台都进不去,就直接改数据库:打开phpMyAdmin找到对应站点的数据库,进wp_options表,找option_name是permalink_structure的条目,把option_value改成你之前用的格式(比如/%postname%/),保存就行。

3. 确认wp-config里的站点URL是否正确

打开site/目录下的wp-config.php,看看有没有加这两行:

define('WP_HOME','https://你的域名/directory_name/site');
define('WP_SITEURL','https://你的域名/directory_name/site');

这两个地址必须和你实际访问站点的URL完全一致,包括http/https、域名和子目录。之前没加的话,加上之后保存再测试。

4. 检查上层目录的.htaccess会不会搞事情

上层的directory_name/目录如果有自己的.htaccess,可能会把所有请求都导向它自己的index.php,直接覆盖子站点的规则。打开这个文件看看有没有类似这样的规则:

RewriteRule ^(.*)$ index.php [L]

要是有,要么删掉这条规则,要么改成只针对上层目录的请求,比如:

RewriteCond %{REQUEST_URI} !^/directory_name/site/
RewriteRule ^(.*)$ index.php [L]

这样就不会干扰子站点的路由了。

5. 最后检查一下目录权限

确保site/目录和里面的文件权限是对的:

  • 文件夹权限设为755
  • 文件权限设为644
  • .htaccess文件权限设为644(保证WP能读写它)
    权限不对的话,用FTP或者服务器面板改一下就行。

内容的提问来源于stack exchange,提问作者András Tóth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:38:22