我无法将404(不正确的url请求)重定向到我开发并上载到服务器的404页面(404.php)。重定向到主目录中的自定义404页面
服务器具有在子文件夹/博客WordPress的安装和所有的404被重定向至WordPress博客的404错误页面。我在.htaccess中设置了重定向,但不起作用。
ErrorDocument 404 /404.php
这是我在.htaccess中添加的内容,但它仍然重定向到博客的404而不是根目录下的404页面。
我该如何重写?
我无法将404(不正确的url请求)重定向到我开发并上载到服务器的404页面(404.php)。重定向到主目录中的自定义404页面
服务器具有在子文件夹/博客WordPress的安装和所有的404被重定向至WordPress博客的404错误页面。我在.htaccess中设置了重定向,但不起作用。
ErrorDocument 404 /404.php
这是我在.htaccess中添加的内容,但它仍然重定向到博客的404而不是根目录下的404页面。
我该如何重写?
首先确保404.php存在于正确的位置,http://www.example.com/404.php工作正常。
如果两个404.php和htaccess的是存在于相同的根文件夹,然后尝试改变下面的行中.htaccess文件
的ErrorDocument 404 /404.php
到
的ErrorDocument 404 /root/404.php
在我的理解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
我通过我的wordpress主题的header.php文件
if (is_404()) {
wp_redirect('../404.php');
exit;
}
的顶部粘贴代码来实现它,现在根/主站点404页是越来越加载,而不是wordpress博客的404页面如预期的那样。 :)
好的。但我有一个不同的模板和根目录中的不同网站。我不希望它重定向到wordpress 404。有没有什么方法可以覆盖.htaccess中的wordpress重定向? – AeJey