![](/img/trans.png)
[英]Wordpress error - Sorry, you are not allowed to access this page. After migrating website from one domain to another
[英]Wordpress dashboard : "Sorry you are not allowed to access this page" after moving live website to localhost
我尝试手动备份我的 Wordpress 网站。
在那之后,我意识到我无法以管理员身份访问仪表板。
我收到以下信息:Désolé, vous n'avez pas l'autorisation d'accéder à cette page。
法语相当于:对不起,您无权访问此页面。
所以我停用了我所有的插件。 我将 .htaccess 文件更改为 .htaccess.old。
在我的数据库中,我的表 usermeta 是为我的用户帐户配置的。 出于某种原因,我有两次“prefix_capabilites”和“prefix_user_level”:
元密钥 | 元值 |
---|---|
可粉化剂 | a:1:{s:13:"管理员";b:1;} |
masuser_level | 10 |
wp_capabilities | a:1:{s:13:"管理员";b:1;} |
wp_user_level | 10 |
然后,我尝试使用 PHPStorm 调试我的网站。
这是我发现的:
// plugin.php
function user_can_access_admin_page() {
global $pagenow, $menu, $submenu, $_wp_menu_nopriv, $_wp_submenu_nopriv,
$plugin_page, $_registered_pages;
$parent = get_admin_page_parent();
// I omitted some functions here...
if ( empty( $parent ) ) { // $parent is empty ""
if ( isset( $_wp_menu_nopriv[ $pagenow ] ) ) { // $pagenow is "index.php"
return false; // It returns here.
}
然后,它返回这里:
// menu.php
if ( ! user_can_access_admin_page() ) {
/**
* Fires when access to an admin page is denied.
*
* @since 2.5.0
*/
do_action( 'admin_page_access_denied' );
wp_die( __( 'Sorry, you are not allowed to access this page.' ), 403 ); // And displays this.
}
因此,据我了解,我的页面 index.php 对于表 $_wp_menu_nopriv[] 被认为是 TRUE。
它在某种程度上证实了用户无法访问管理页面。
但我不明白这个变量 $_wp_menu_nopriv[] 是什么意思?
你能帮助我吗?
更新 1:
我试图将我的用户 wp_capabilites 值更改为:'a:1:{s:13:"administrator";s:1:"1";}'
但它也没有奏效。
当我尝试使用备份插件备份我的网站时,总会在某些时候出现错误。
更新 2:
我从这个网站找到了我的问题的解决方案。
当您(在某些时候)使用也更改了数据库中的功能记录的实用程序更改了数据库前缀时,就会发生这种情况。
要修复它,请记下您当前的数据库前缀。 默认值为“wp_”,为简单起见,我们假设目标前缀为“wp_”。 如果您希望使用的数据库前缀不同,请确保将所有“wp_”实例替换为您的新前缀。
在 Plesk 中为数据库使用 phpMyAdmin 并完成这些搜索(使用 LIKE %...%):
在 wp_options 表中,查找以“user_roles”结尾的 option_name 并将其前缀更改为“wp_user_roles” 在 wp_usermeta 表中,查找以错误前缀开头的所有条目并将不正确的前缀替换为 wp_ 现在登录或刷新页面,您应该会发现您的用户权限已返回。
您可以尝试更改 wp_capalities
update wp_usermeta
set meta_value = 'a:1:{s:13:"administrator";s:1:"1";}'
where user_id = YOUR USER ID
and meta_key = 'wp_capabilities';
否则,您可以考虑使用插件安装和迁移全新的 wordpress: https://wordpress.org/plugins/all-in-one-wp-migration/
我从另一个网站找到了我的问题的解决方案:
当您(在某些时候)使用也更改了数据库中的功能记录的实用程序更改了数据库前缀时,就会发生这种情况。
要修复它,请记下您当前的数据库前缀。 默认值为“wp_”,为简单起见,我们假设目标前缀为“wp_”。 如果您希望使用的数据库前缀不同,请确保将所有“wp_”实例替换为您的新前缀。
在 Plesk 中为数据库使用 phpMyAdmin 并完成这些搜索(使用 LIKE %...%):
在 wp_options 表中,查找以“user_roles”结尾的 option_name 并将其前缀更改为“wp_user_roles” 在 wp_usermeta 表中,查找以错误前缀开头的所有条目并将不正确的前缀替换为 wp_ 现在登录或刷新页面,您应该会发现您的用户权限已返回。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.