2015-11-05 159 views
1

我无法将404(不正确的url请求)重定向到我开发并上载到服务器的404页面(404.php)。重定向到主目录中的自定义404页面

服务器具有在子文件夹/博客WordPress的安装和所有的404被重定向至WordPress博客的404错误页面。我在.htaccess中设置了重定向,但不起作用。

ErrorDocument 404 /404.php 

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

我该如何重写?

回答

0

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

如果两个404.php和htaccess的是存在于相同的根文件夹,然后尝试改变下面的行中.htaccess文件

的ErrorDocument 404 /404.php

的ErrorDocument 404 /root/404.php

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中的URL重写来确定哪个页面请求即将到来。 WordPress拥有理解当前请求的核心机制。例如,您创建了一个页面名称hello-word,当您转到http://your_wordpress.com/hello-word wordpress从URL中确定hello-world并在其数据库中查找是否有hello-word页面。如果当前页面不存在于数据库中,则机制自动调用位于当前活动主题中的主题404模板。

解决方案

wp-content/themes/YOUR-THEME/404.php创建一个文件,并改变它的内容。你不需要在.htaccess指定ErrorDocument 404 /404.php。了解更多如何创建404模板here

+0

好的。但我有一个不同的模板和根目录中的不同网站。我不希望它重定向到wordpress 404。有没有什么方法可以覆盖.htaccess中的wordpress重定向? – AeJey

1

我通过我的wordpress主题的header.php文件

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

的顶部粘贴代码来实现它,现在根/主站点404页是越来越加载,而不是wordpress博客的404页面如预期的那样。 :)

相关问题