wordpress的后台如何设置404错误页面?我的主题里面有个404.html,不清楚怎么调用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了wordpress的后台如何设置404错误页面?我的主题里面有个404.html,不清楚怎么调用相关的知识,希望对你有一定的参考价值。

1、第一步当然是制造一个404.html文件,并上传到网站根目录

2、删除原来的重写规则文件htaccess,添加下面如下规则。

# BEGIN WordPress

ErrorDocument 404 /404.html

RewriteEngine On

RewriteBase /

RewriteRule ^archives/.*$ /index.php [L]

RewriteRule ^feed.*$ /index.php [L]

RewriteRule ^page/.*$ /index.php [L]

RewriteCond %REQUEST_FILENAME !-f

RewriteCond %REQUEST_FILENAME !-d

# END WordPress

archives是文章的url格式,如/archives/88,可以根据自己实际的文章url修改。如果你的博客是安装在wordpress目录,则必须在后面增加RewriteRule ^wordpress/.*$ /index.php
参考技术A 主题里面 有个404php页面。 参考技术B 有专门的调用代码,并且在网站根目录创建404。php 参考技术C 这个应该人家编写主题的时候都自动调用了

WordPress 404 模板覆盖我的 .htaccess 设置以解决 404 错误?

【中文标题】WordPress 404 模板覆盖我的 .htaccess 设置以解决 404 错误?【英文标题】:WordPress 404 template overriding my .htaccess settings for 404 errors? 【发布时间】:2012-07-23 11:00:50 【问题描述】:

在诸如http://website.com/sub/index.html 等拥有自己的.htaccess 的子目录上,由于某种原因,仍然显示我为Wordpress 拥有的404 页面,该页面位于该目录之上。

.htaccess 用于子目录:

ErrorDocument 404 /404.html

.htaccess 用于主目录:

RewriteEngine on
RewriteCond %HTTP_HOST ^website.net$ [OR]
RewriteCond %HTTP_HOST ^www.website.net$
RewriteRule ^foghelper.php$ http://website.net/subdirone/ [R=301,L]
RewriteRule ^foghelper.php$ http://website.net/subdirtwo/ [R=301,L]
# DO NOT REMOVE THIS LINE AND THE LINES ABOVE jNLK5d:REDIRECTID


# 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

如果您想知道,hta 中的链接会被审查。

编辑:

RewriteRule . /index.php [L] 之前添加RewriteCond %REQUEST_URI !^/?sub/ 后,错误似乎仍然存在。

【问题讨论】:

你看过这篇文章吗? ***.com/questions/2322559/…希望对您有所帮助! 【参考方案1】:

所有内容都通过 wordpress 进行路由,因此当对 /sub/no_file.html 之类的请求不存在时,wordpress 将通过其 index.php 路由它,因为它同时满足 !-f!-d 条件(不是现有文件而不是现有目录)。然后它决定它找不到/sub/no_file.html 的资源,因此它会显示它自己的 404 文件。

如果您希望转到 /sub 的请求绕过 wordpress 的路由,以便如果在 /sub/ 中请求的文件不存在,则 /404.html 得到服务,您可以在 RewriteRule . /index.php [L] 之前添加此行在您的 wordpress 规则中,使它们看起来像这样:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteCond %REQUEST_URI !^/?sub/
RewriteRule . /index.php [L]
</IfModule>

【讨论】:

我添加了,但仍然有同样的问题。【参考方案2】:

默认的 .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

神奇之处在于以 RewriteCond 开头的行。他们指示 Apache 应用规则 RewriteRule 。 /index.php [L](这意味着“任何 URL 都将转到 index.php”),仅当 URL 不是现有文件 !-f 或现有目录 !-d 时。

所以这应该默认工作。当您尝试访问已存在的文件时,Wordpress 重写规则不适用。

【讨论】:

不,你看我想要做的是有子目录,比如 sitename.com/subdir 使用它自己的 404 页面。在我的网站上,我拥有的某些网络应用程序位于不同的目录中,并且它们都有自己的 404 与主题等。然而,每当我访问这些目录中不存在的页面时,我就会被带到主目录上的 wordpress 404 错误。

以上是关于wordpress的后台如何设置404错误页面?我的主题里面有个404.html,不清楚怎么调用的主要内容,如果未能解决你的问题,请参考以下文章

wordpress后台操作老是出现404,但是其他页面都是正常的,怎么回事?

WordPress 404 模板覆盖我的 .htaccess 设置以解决 404 错误?

wordpress怎么设置404错误页面

wordpress 2003 系统 怎么设置 404 错误页面 都返回200 代码 带默认的404.php 文件

如何设置404页面保留原网址?

wordpress设置“固定链接”后,页面404错误的解决方法