如何将404页面重定向到其他域

时间:2017-09-29 06:48:41

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

我将我的网站从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个网址重定向到我的子域。

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

2 个答案:

答案 0 :(得分:0)

检查该页面是否为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;
  }
?>

答案 1 :(得分:0)

<?php

header("HTTP/1.1 301 Moved Permanently");

header("Location: http://old.website.com{$_SERVER['REQUEST_URI']}"); 

exit();

?>

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