重定向到主目录中的自定义404页面

时间:2015-11-05 10:28:01

标签: php wordpress .htaccess redirect

我无法将404(不正确的网址请求)重定向到我开发并上传到服务器的404页面(404.php)。

服务器在子文件夹/博客中安装了Wordpress,所有404都被重定向到wordpress博客的404页面。我在.htaccess中设置了重定向但是没有工作。

ErrorDocument 404 /404.php

这是我在.htaccess中添加的内容,但它仍然重定向到博客404而不是root中的404页面。

我该如何覆盖?

3 个答案:

答案 0 :(得分:1)

在我的理解中ErrorDocument 404 /404.php只有在.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

因为wordpress拥有自己的life cycle,它使用.htaccess中的网址重写来确定哪个网页请求即将发布。 WordPress拥有理解当前请求的核心机制。例如,您创建了一个页面名称hello-word,当您转到http://your_wordpress.com/hello-word wordpress从网址确定hello-world并在其数据库中找到它是否有hello-word页面或不。如果数据库中不存在当前页面,则其机制自动调用位于当前活动主题中的主题404模板。

  

解决方案

wp-content/themes/YOUR-THEME/404.php中创建文件并更改其内容。您无需在ErrorDocument 404 /404.php中指定.htaccess。详细了解如何创建404模板here

答案 1 :(得分:1)

我是通过在我的wordpress主题的header.php文件上粘贴此代码来实现的。

 if ( is_404() ) {
      wp_redirect( '../404.php' );
      exit;
   }

现在根据预期加载了根/主站点404页面而不是wordpress博客的404页面。 :)

答案 2 :(得分:0)

首先确保404.php存在于正确的位置,http://www.example.com/404.php正常工作。

如果404.php和.htaccess都存在于同一根文件夹中,请尝试更改.htaccess文件中的以下行

ErrorDocument 404 /404.php

ErrorDocument 404 /root/404.php