Как исправить ошибку "извините, у вас нет доступа к этой странице" при переходе по ссылкам "плагины > настройки"?

22 нояб. 2016 г., 20:01:27
Просмотры: 71.8K
Голосов: 4

Я только что обновился до WordPress 4.6, и теперь когда я пытаюсь нажать на ссылку Настройки в некоторых моих плагинах, я получаю сообщение "Извините, у вас нет доступа к этой странице."

Я могу активировать/деактивировать плагин без проблем, но по какой-то причине я не могу перейти к просмотру настроек.

Я пытался следовать некоторым методам, которые использовали другие люди для исправления этой проблемы; например, добавление нового администратора и обновление значений "wp_capabilities" и "wp_user_level" в базе данных, но это всё равно не работает.

Кто-нибудь знает, как я могу дальше отладить или решить эту проблему?

6
Комментарии

Как вы выполнили обновление и обновляли ли плагины одновременно? Я иногда видел эту ошибку, когда у файла или папки в плагине были неправильные права доступа - например, если файл был загружен через FTP с блокировкой безопасности.

Michelle Michelle
22 нояб. 2016 г. 20:05:28

Я сначала обновился до версии 4.6 через админку, а затем также обновил плагины через админку.

olimits7 olimits7
22 нояб. 2016 г. 20:06:58

Вы пробовали удалить и переустановить один из некорректно работающих плагинов? Иногда простого отключения недостаточно.

Michelle Michelle
22 нояб. 2016 г. 20:07:56

Один из плагинов, с которым у меня возникла эта проблема — "Hello Bar". Я только что попробовал удалить и переустановить этот плагин, но при нажатии на ссылку "Настройки" появляется то же сообщение... WordPress иногда может очень разочаровывать!

olimits7 olimits7
22 нояб. 2016 г. 20:13:55

Вот еще несколько вариантов для проверки: https://wordpress.org/support/topic/wp-admin-sorry-you-are-not-allowed-to-access-this-page/

Michelle Michelle
22 нояб. 2016 г. 20:16:01

Спасибо за ссылку, попробую эти варианты.

olimits7 olimits7
22 нояб. 2016 г. 20:17:03
Показать остальные 1 комментариев
Все ответы на вопрос 8
2
13

Если у вас настроен HTTPS на WordPress и вы добавили код ниже в файл wp-config.php, убедитесь, что эти строки находятся в самом начале файла. Я столкнулся с этой проблемой, и, возможно, это вам поможет.

define('FORCE_SSL_ADMIN', true);
if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false)
    $_SERVER['HTTPS']='on';
23 окт. 2018 г. 17:35:11
Комментарии

Как это связано с ошибкой только на одной конкретной странице? Пожалуйста, объясните это в вашем ответе.

fuxia fuxia
23 окт. 2018 г. 18:04:18

Это помогло мне. Чтобы уточнить, почему это важно: людям, которые используют обратный прокси и https, возможно, потребуется добавить эти строки, см.: https://wordpress.org/support/article/administration-over-ssl/

Однако в документации не уточняется, что они должны быть в начале wp-config. Я поместил их в конце и получил сообщение "извините, вам не разрешено.."

Потратил время на все другие решения, которые не помогли, пока не нашел это.

giocomai giocomai
2 нояб. 2019 г. 22:33:29
1

По моему мнению, чтобы войти в PHPMyAdmin, перейдите в таблицу wp_usermeta, затем отредактируйте поле wp32_capabilities для любого пользователя и добавьте это a:1:{s:13:"administrator";s:1:"1";}. Это изменит привилегии пользователя на администратора. Существует несколько причин, по которым это может измениться, и вы получите ошибку.

Я столкнулся с этой ошибкой на своем сайте и попробовал этот метод всего один раз, после чего проблема была решена.

10 июл. 2018 г. 17:59:16
Комментарии

Да, в моем случае в таблице wp_usermeta для нового пользователя с правами администратора не было строк 'wp_capabilities' или 'wp_user_level'. Я создал 2 новые строки с указанными выше значениями и wp_user_level = 10.

00-BBB 00-BBB
3 сент. 2019 г. 17:02:56
1

Также найдите в файле wp-setting.php строку "define('DISALLOW_FILE_MODS',true);" и удалите её. Ни одно из вышеперечисленных решений не сработало для меня, кроме этого!

29 нояб. 2018 г. 06:06:54
Комментарии

Но ваши изменения пропадут после обновления WP, не так ли?

Krzysiek Dróżdż Krzysiek Dróżdż
29 нояб. 2018 г. 09:08:52
0

Вы можете держать несколько установок WordPress, пока префиксы таблиц разные и не конфликтуют. В этой статье описано исправление ошибки доступа, которая возникает после изменения префикса: https://www.mysysadmintips.com/other/web/743-wordpress-admin-sorry-you-are-not-allowed-to-access-this-page

6 февр. 2019 г. 18:56:37
2

Я заметил, что сообщение "Извините, у вас нет доступа к этой странице" чаще всего появляется, когда несколько сайтов WordPress находятся в одном phpMyAdmin — все с одинаковым префиксом таблиц, независимо от имени базы данных. Я не могу сказать, сколько именно сайтов WordPress могут находиться в одном phpMyAdmin с одинаковым префиксом таблиц.

8 июн. 2017 г. 23:17:42
Комментарии

Привет! Поскольку ссылки на внешние ресурсы могут устаревать, не мог бы ты расширить свой ответ, чтобы он был самодостаточным?

Andy Macaulay-Brook Andy Macaulay-Brook
8 июн. 2017 г. 23:49:18

Это не имеет смысла. phpMyAdmin не имеет к этому никакого отношения. Твой WordPress будет работать только с одной базой данных на сервере MySQL. Если ты не пытаешься установить несколько сайтов в одну базу данных с одинаковым префиксом, это никогда не будет проблемой. Можешь объяснить, как именно этот ответ решает проблему с технической точки зрения?

Lightbulb1 Lightbulb1
10 нояб. 2018 г. 02:10:21
0

По умолчанию, при первом запуске плагина, возможности будут назначены ролям "Администратор" и "Редактор". Вы можете добавлять или удалять возможности для пользователей с помощью отличного плагина Members, если его еще нет.

12 июл. 2017 г. 10:41:14
0

WordPress отображает стандартную страницу 403, когда происходит одно из нескольких событий в бэкенде:

  1. Пользователю запрещен доступ из-за неправильных разрешений его роли
  2. Страница бэкенда не найдена, что происходит, когда плагин или тема больше не активны, но оставили устаревшие данные в базе, или когда они неправильно маршрутизируют свою админ-страницу из-за неправильной настройки. Это часто случается при использовании плагинов для перезаписи URL, которые не обрабатывают URI бэкенда корректно или пропускают их перезапись. Это также часто приводит к блокировке доступа к экрану входа.
  3. Произошла ошибка во внутреннем механизме маршрутизации ядра, и он получает результат, который не понимает, не может обработать или который соответствует нераспознанной схеме
  4. Во время этапа маршрутизации для админ-панели происходит критическая, но не фатальная ошибка

В вашем случае, скорее всего, имеет место третий вариант. Код ядра WordPress не выполняет строгой проверки типов и обычно продолжает работу без тщательной проверки формата или валидности полученных данных для текущей задачи. Это часто приводит к странным и трудно диагностируемым ошибкам, если вы не понимаете, как работают внутренние механизмы ядра.

В качестве предварительных мер можно предпринять следующее:

  • Убедитесь, что каждый сайт в рамках одной установки имеет свою собственную базу данных, назначенную ему, с выделенным пользователем, у которого нет прав доступа к другим базам данных в вашем кластере. Например, когда вы входите в PhpMyAdmin как root, у вас есть доступ ко всему кластеру. Для любого приложения должна быть выделенная база данных и пользователь в вашем кластере, и этот пользователь не должен иметь доступ к другим базам данных, если только это не общий ресурс, созданный специально для обмена данными между двумя приложениями. Это снижает вероятность того, что ваше приложение попытается получить данные из неправильной базы данных, а также предотвращает проблемы с конфликтами между двумя или более установками WordPress с одинаковыми префиксами. Не размещайте две установки WordPress в одной базе данных, иначе обе сломаются.
  • Проверьте вкладку Network в инструментах разработчика вашего браузера и посмотрите код ошибки запроса. Если это 403 (как и должно быть), то проблема либо в отсутствии страницы, либо в недостаточных правах пользователя. Если это 500 (чего быть не должно), значит, сервер столкнулся с ошибкой и перешел к стандартной процедуре завершения. Если это 500, у вас проблема с плохим плагином, темой или базой данных. Если это 403, скорее всего, это связано с неудачным обновлением, неправильной настройкой или законным запретом доступа.
30 мар. 2018 г. 00:41:49
1

Измените префикс таблиц на "_" в файле wp-config.php и сохраните. Затем попробуйте загрузить wp-admin/. Возможно, вы увидите сообщение о новой установке. Не устанавливайте, вернитесь и снова измените префикс на "WP". У меня это сработало. Не уверен, что это поможет всем.

до: $table_prefix = 'wp_';
промежуточный вариант: $table_prefix = '_';
после: $table_prefix = 'WP_';

25 дек. 2018 г. 13:31:57
Комментарии

Аналогичное решение устранило сообщение 403: Sorry, you are not allowed to access this page.

В моём случае при переносе на новый сервер имена таблиц в базе данных были изменены на строчные, включая те, на которые ссылается $table_prefix.

Обновление $table_prefix на строчные символы позволило заработать фронтенду, однако /wp-admin выдавал ошибку 403.

Решением стала проверка базы данных на наличие ссылок на оригинальный префикс в верхнем регистре. Например, в таблице _usermeta.meta_key было несколько экземпляров оригинального префикса в верхнем регистре.

chris.dempsey chris.dempsey
10 янв. 2023 г. 14:53:22