【问题标题】:How to redirect 404 page to other domain如何将404页面重定向到其他域
【发布时间】:2018-03-11 00:42:02
【问题描述】:

我将我的网站从 cms 更改为 WordPress。所以URL链接被改变了。 现在谷歌将用户重定向到旧的 URL 链接。现在已经死了。所以网站返回404页面。

访客抱怨我的错误。 所以我想将带有 404 错误 URL 的用户重定向到另一个子域。

错误网址:website.com/ABC/123

到网址:old.website.com/ABC/123

如何通过编辑 .htaccess 文件来做到这一点。 已经有一些关于 htaccess 文件的数据。

我的 Htaccess 文件截图 https://imgur.com/9KyYLoa

需要对 htaccess 文件进行哪些更改才能仅将 404 URL 重定向到我的子域。

我有数百个链接,所以我无法通过重定向插件手动添加它。

【问题讨论】:

    标签: wordpress .htaccess redirect http-status-code-404


    【解决方案1】:

    检查该页面是否是 404 错误页面,如果是错误页面,则重定向到您的子域。 Wordpress 有一个名为is_404() 的函数,用于检查 404 错误页面。对于重定向,它有一个名为wp_redirect('redirect url') 的函数。要重定向到与其他域名相同的 URL,您可以使用 PHP 的 $_SERVER['REQUEST_URI'] 函数获取 URL(在您的情况下,这将返回 /ABC/123

    所以你的代码应该是:

    if (is_404()) { 
        wp_redirect('http://old.website.com' . $_SERVER['REQUEST_URI']);
        exit;
    }
    

    将此代码添加到主题的header.phpindex.php 文件中,否则您也可以将其挂接到自定义插件的标题中。


    Java 脚本方法

    在同一个地方添加这段代码而不是之前的代码(在 header.php 中的 head 标记结尾之前)

    <?php
    if (is_404()) {
        ?>
            <script>
               window.location = "http://old.website.com"+window.location.pathname;
            </script>
        <?php
       exit;
      }
    ?>
    

    【讨论】:

    • 感谢您的回答。我在 body 标签下的 header.php 文件中添加了它。它不工作。仍然显示相同的 404 错误。我在 head 标签下尝试过,即使它不起作用。
    • 尝试在 head 标签的末尾添加这些行。您是否以这种方式包含 php 标签 if (is_404()) { wp_redirect('old.website.com'+$_SERVER['REQUEST_URI']); } ?>
    • 抱歉忘记在 wp_redirect 之后添加退出。尝试添加一次并检查。
    • 谢谢。但它仍然无法正常工作。现在不同的是页面现在没有加载。只是显示空白页。它不会将页面重定向到子域 URL。
    • + 符号连接php?它不应该是一个点吗?
    【解决方案2】:
    <?php
    
    header("HTTP/1.1 301 Moved Permanently");
    
    header("Location: http://old.website.com{$_SERVER['REQUEST_URI']}"); 
    
    exit();
    
    ?>
    

    只需将其添加到您的 404.php

    【讨论】:

    • 它将具有相同结构的永久链接重定向到old.website.com,这应该会在 website.com 上带来错误
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-16
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    相关资源
    最近更新 更多