✨专业 WordPress 开发,定制建站,高效上线,合作即享优化服务!🚀

WordPress 搬家后出现404页面(虚拟主机)

当 WordPress 搬家后出现 只有首页能打开,其他页面都是 404 错误 的情况,常见原因是 固定链接设置失效(.htaccess 文件未更新)或伪静态规则没有生效

你可以通过以下几种方式通过代码直接修复这个问题:

✅ 一、通过代码重写 .htaccess(Apache 环境)

将以下代码添加到主题的 functions.php 中(只需要执行一次,建议加个判断,避免多次执行):

add_action('init', function () {
    $htaccess_path = ABSPATH . '.htaccess';

    // 检查 .htaccess 是否存在
    if (!file_exists($htaccess_path) || strpos(file_get_contents($htaccess_path), 'WordPress') === false) {
        $rules = <<<HTACCESS
# 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
HTACCESS;

        file_put_contents($htaccess_path, $rules);
    }
});


✅ 二、用代码刷新固定链接结构(后台设置等效操作)

你也可以在代码中强制刷新一下固定链接的规则:

add_action('init', function () {
    if (get_option('permalink_structure') !== '/%postname%/') {
        update_option('permalink_structure', '/%postname%/');
        flush_rewrite_rules();
    }
});

 

📌 注意:你可以把这个代码加上条件判断,比如只运行一次或只在管理员登录时执行。


✅ 三、如果是 NGINX 环境

NGINX 不支持 .htaccess,你需要修改服务器配置文件 /etc/nginx/sites-available/your-site.conf,加入类似规则:

nginx
location / {
    try_files $uri $uri/ /index.php?$args;
}

修改完记得重启 nginx:

bash
sudo service nginx restart

✅ 四、手动修复方案(推荐在后台设置完成后自动执行 flush)

php
// 加入主题 functions.php 文件中
add_action('after_switch_theme', 'flush_rewrite_rules');

🔁 最佳组合建议:

如果你要自动修复搬家后的问题,可以组合这两段:

php
add_action('init', function () {
    // 设置固定链接结构为 /%postname%/
    if (get_option('permalink_structure') !== '/%postname%/') {
        update_option('permalink_structure', '/%postname%/');
    }

    // 强制刷新伪静态规则
    flush_rewrite_rules();

    // 写入 .htaccess(仅限 Apache)
    $htaccess_path = ABSPATH . '.htaccess';
    if (!file_exists($htaccess_path) || strpos(file_get_contents($htaccess_path), 'WordPress') === false) {
        $rules = <<<HTACCESS
# 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
HTACCESS;

        file_put_contents($htaccess_path, $rules);
    }
});

 


如你使用的是 NGINX + WordPress,.htaccess 无效,就只执行 flush_rewrite_rules() 即可,NGINX 规则需手动配置或由运维处理。

WordPress 技术支持团队
WordPress 技术支持团队

💻 一位真诚且细致入微的年轻开发者🎓,专注于外贸网站定制开发领域。
🌟 专业承接 WordPress 建站设计定制与全方位开发服务。我们的独特优势在于,不仅精通网站开发技术,更将国际化主流美术设计元素🎨巧妙融合,同时制定精准有效的品牌营销策略📈。
💡 服务涵盖:
🔍WordPress 主题开发,打造独一无二的网站视觉风格与用户体验。
💻WordPress 网站定制,根据您的外贸业务需求,量身定制专属网站。
无论是网站架构搭建,还是界面美学设计,亦或是品牌推广策略,我们都能为您提供一站式的优质解决方案,助力您的外贸事业在互联网上脱颖而出,迈向全球市场🚀。

文章: 45

留下评论

您的邮箱地址不会被公开。 必填项已用 * 标注

提交您的请求

报价收集表

💥网站建设 | 实力说话,不搞虚的!

宝子们,咱就说,好多甲方都不乐意自己的网站被同行抄作业,这就跟你开个店,肯定不想让别人知道你的进货渠道是一个道理,对不?所以呢,为了给客户满满的安全感,咱网站上就没放任何客户案例作品的链接哈,这可是咱对客户隐私的保护。

📌但要是有真心想做网站的老板,或者宝子你只是想看看我们的案例,那就赶紧加我们网站的联系方式,咱麻溜地给你发几个瞅瞅,主打一个真诚!

要是你还没拿定主意要做啥风格的网站,也简单,你就找几个同行的网站发给我们,照着做就完事儿。咱选仿站可不代表没本事哈,只是咱实在受不了那种瞎扯犊子的无效沟通和繁琐到让人抓狂的流程。有些甲方做个企业展示型网站,非得找几十家供应商来卷,说实话,没真技术的公司才会在那跪舔甲方。咱不一样,咱就想踏踏实实地给客户做出性价比超高、让客户满意得直拍大腿的网站。那些跪舔的活儿,就让那些只会耍嘴皮子、没啥技术的公司去干吧,咱不伺候! #网站建设

#甲方乙方 #拒绝内卷

联系WordPress技术团队

我们期待您的来信。

提交您的请求

报价收集表