[英]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.