我无法将404(不正确的网址请求)重定向到我开发并上传到服务器的404页面(404.php)。
服务器在子文件夹/博客中安装了Wordpress,所有404都被重定向到wordpress博客的404页面。我在.htaccess中设置了重定向但是没有工作。
ErrorDocument 404 /404.php
这是我在.htaccess中添加的内容,但它仍然重定向到博客404而不是root中的404页面。
我该如何覆盖?
答案 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