WordPress使用自己的页面覆盖自定义404页面

时间:2014-09-15 作者:PWL

我想创建一个自定义404页面,但我似乎无法覆盖Wordpress本身中的404。我想要一个自定义404页面的原因是,如果我在我的子目录中得到404,我会被定向到wordpress站点的404。我宁愿我的整个域名都是404。

我只在Wordpress页面等中找到了这样做的解决方案,但我真的必须这样做吗?我想我的问题是。htaccess文件,但如果我弄糟了这个文件,我的Wordpress网站上的链接将被破坏。

我的htaccess看起来是这样的(虽然第一行是我想添加的,但wordpress似乎并不在意)。

ErrorDocument 404 /404page.php

# 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站点位于我的域的根上,它的404页面显示在所有子域上,我想用我自己的覆盖它。

2 个回复
最合适的回答,由SO网友:Quinn Comendant 整理而成

Wordpress处理URL时index.php 脚本将与请求页面的路径一起加载。因为在这种情况下index.php 始终找到脚本,将永远不会触发正常的404错误(通过ErrorDocument 404 …). 如果请求的URL与WP知道的页面不匹配,WP将显示自己的“404”页面。

不幸的是,如果WP处理URL,就无法绕过WP 404页面使用正常的404页面。此问题记录在https://core.trac.wordpress.org/ticket/7592.

SO网友:Martin Braun

编辑404。php在您的主题文件夹中或添加404。php在您的子主题文件夹中,因此它包含您的错误消息。它不会绕过WordPress,但这是唯一的方法。然而,如果您想提高速度,可以通过将此内容放入主题的404中,快速重定向到静态页面。php:

<?php if (!defined( \'ABSPATH\' )) exit;

header(\'HTTP/1.0 404 Not Found\');
readfile( ABSPATH . \'/wp-content/static/404.html\' );
exit;

结束

相关推荐

如何使我的.htaccess文件可由wp-admin写入?

我的ISP更改了Wordpress博客的主机,一切都停止了。有一个DNS问题,但他们解决了这个问题,但除主页外的每个页面都返回了404错误。当我查看permalinks页面时(/wp-admin/options-permalinks.php) 在wp admin中,我看到了以下内容:如果您的。htaccess文件是可写的,我们可以自动执行此操作,但事实并非如此,这些是您应该在中包含的mod\\u重写规则。htaccess文件。在字段中单击,然后按CTRL+a组合键选择全部。添加它列出的内容(通过我的ISP