403 Forbidden - Нет доступа к admin-ajax.php на сервере WordPress

15 авг. 2019 г., 13:59:22
Просмотры: 19.5K
Голосов: 2

При попытке создать резервную копию моего сайта WordPress через плагин я получаю следующую ошибку:

"403 Forbidden - У вас нет прав доступа к /wp-admin/admin-ajax.php на этом сервере."

Эта ошибка также иногда появляется во время установки плагинов.

Мой файл htaccess:

# Begin Wordpress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

Структура сервера:

-/
  -/wordpress
  -/oldfiles
  -/other

внутри /wordpress находится весь мой сайт WordPress:

-/wordpress
 -/wp-admin
 -/wp-content
 -/.htaccess

и так далее...

Что я уже пробовал:

- Использовал разные плагины для резервного копирования (1 Updraft, 2 Duplicator) - оба показывают ту же ошибку.

- Изменял права доступа к файлам через FTP-клиент.

Установил права 755 для директорий wp-admin, wp-includes, wp-content

Установил права 644 для всех файлов внутри директорий и 755 для всех подпапок.

- Я даже изменил права доступа к папке /wp-admin на 755 и к файлу admin-ajax.php на 777, но ошибка осталась

- Внес изменения в файл .htaccess:

# BEGIN WordPress
<Files admin-ajax.php>
Order Deny,Allow
Deny from all
Allow from all
</Files>

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

- Отключил все плагины и оставил только плагин резервного копирования - та же ошибка.

- Удалял файл .htaccess

- Создавал временный 301 редирект в .htaccess, чтобы убедиться что работаю с правильным файлом

- Отключил плагин "Wordfence security"

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

Хотя ваша установка WordPress находится в подкаталоге /wordpress, файл .htaccess WordPress, похоже, загружает /index.php в корневом каталоге документа? Сообщение об ошибке, которое вы указали, также ссылается на /wp-admin/.... в корневом каталоге документа?

MrWhite MrWhite
15 авг. 2019 г. 14:28:31

Установлено перенаправление по умолчанию в подкаталог /wordpress. Файл .htaccess находится внутри подкаталога /wordpress. Кроме того, я также установил права 755 на /wp-admin внутри подкаталога и 644 на admin-ajax.php, но ничего не изменилось.

Moiz Nadeem Moiz Nadeem
15 авг. 2019 г. 14:56:45

Что происходит, когда вы запрашиваете /wp-admin/admin-ajax.php (или /wordpress/wp-admin/admin-ajax.php) напрямую? А как насчёт "группы" файла? Я бы проверил, нет ли каких-либо модулей безопасности Apache, которые могут мешать: mod_security, mod_evasive и т.д.?

MrWhite MrWhite
16 авг. 2019 г. 23:48:29

Примечание: "стандартное перенаправление" — я предполагаю, что вы имеете в виду внутреннюю перезапись в родительском файле .htaccess, которая перенаправляет запрос напрямую в /wordpress/index.php? Возможно, это так, но это не делает файл /wordpress/.htaccess корректным — здесь либо происходит дополнительная / ненужная перезапись, либо фронт-контроллер в /wordpress/.htaccess обходится? (Нужно увидеть родительский файл .htaccess, чтобы точно понять, как маршрутизируются ваши URL-адреса WordPress.) Хотя это вряд ли связано с вашей проблемой "разрешений".

MrWhite MrWhite
16 авг. 2019 г. 23:56:16
Все ответы на вопрос 1
0

Это, вероятно, вызвано модулем mod-evasive (или аналогичным) в Apache (или другом веб-сервере), который блокирует множественные последовательные запросы, считая, что вы пытаетесь запустить атаку типа "отказ в обслуживании" (DOS) на сервер. Попробуйте отключить любые плагины безопасности (те, что работают на уровне Apache/веб-сервера, а не WordPress).

9 дек. 2019 г. 15:23:43