虽然你们中的许多人都面临这个问题,但很少有人真正知道它与什么有关或如何解决这个问题。因此,在本指南中,我们将为“拒绝访问”错误提供一个非常简单和快速的解决方案,以使任何有或没有技术技能的人都能处理它。

但是,让我们首先定义什么是 Magento“拒绝访问”错误。

什么是 Magento“拒绝访问”错误?

Magento Access denied 错误是最常见的 Magento 错误,当您尝试访问网页而无权进入时出现。当您使用不正确的管理面板凭据、创建具有错误用户角色的新用户或安装Magento 2 扩展时,它通常会出现在 Magento 管理员中。

如何修复 Magento 2 中的“拒绝访问”错误?

现在您知道“访问被拒绝”错误可能出现的主要原因,让我们相应地解决它们。

解决方案 1. 获取正确的凭据

如果您丢失了管理面板凭据,恢复它们的唯一方法是通过数据库表。转到您的数据库并运行以下 SQL 查询:

SET @salt = MD5(UNIX_TIMESTAMP());


UPDATE admin_user SET password = CONCAT(SHA2(CONCAT(@salt, 'YourNewPassword'), 256), ':', @salt, ':1') WHERE username = 'admin';

 

现在尝试使用新密码登录,如果无法登录,请检查admin_user表中的2 列: first_failurelock_expires并将这些列的值设置为 null。

解决方案 2. 分配适当的用户角色

如果您在添加新用户后在 Magento 中遇到“访问被拒绝”问题,很可能您没有为他们分配用户角色。

在这种情况下,使用其他用户登录或要求管理员转到System > Permissions > All Users并将您的用户分配给某个用户角色。

解决方案 3. 获取访问特定扩展程序的权限

由于 Magento 不会自动更新对新扩展的权限,因此您可能无权查看新的扩展设置。 

它通常有助于重新登录管理面板。但是,如果 Magento “拒绝访问”错误仍然存​​在,请重置管理员权限。

1.转到System > Permissions > User Roles 并找到新扩展被阻止的角色。

2.在Resource Access更改为全部或某些特定扩展Role Resources

解决方案4.修复system.xml和config.xml冲突

有时会发生在启用某些自定义模块后,Magento 2 中的“访问被拒绝”问题出现并阻止您访问自定义模块。

尝试禁用扩展并检查问题是否仍然存在。如果是,请检查 system.xml 和 config.xml 文件。config.xmlsystem.xml中的某些条目可能会丢失。 

现在您应该能够快速修复“访问被拒绝”错误并立即跳回与 Magento 管理员一起工作。无论您是否是开发人员,您都应该知道如何对Magento 进行故障排除以消除所有可能的问题并更快地找到解决方案。