Вопрос или проблема
wp-login.php?redirect_to=https ошибка
Пожалуйста, простите меня, если я публикую в неправильном месте, но я здесь, чтобы узнать, сможете ли вы помочь мне несколькими минутами вашего времени.
Проблема заключается в том, что на сайте наблюдаются постоянные внутренние ошибки, связанные с wp-login.php. Я могу войти в систему и получить доступ к фронтенду без каких-либо трудностей. Я пытался отладить, но ошибки не отображаются на каких-либо страницах. Я протестировал тему, плагины и т.д. Я проверил файл htaccess на наличие повреждений (повреждений нет) и настроил файл htaccess для отладки и отображения, но ничего не появилось. Я также проверил файл отладки на стороне сервера, там были ошибки, связанные с одним плагином, и когда я отключил этот плагин, никаких изменений в внутренних ошибках не произошло. Хост говорит, что не видит проблемы. PHP работает на версии 7.2. Памяти PHP достаточно. Я проверяю, имеют ли файлы и папки правильные разрешения.
Когда я использую инструменты анализа, такие как Screaming Frog, есть 15 ссылок, вызывающих внутреннюю ошибку 500… и иногда я перенаправляюсь на страницу верификации “вы человек” с флажком (это потому, что хост имеет защиту от атак грубой силой на сервере и не может снять защиту только для моего сайта). wp-login.php, похоже, перенаправляет обратно на основной домен и изображение, но на экране видно стандартное сообщение ‘Внутренняя ошибка сервера 500’. Одна из ссылок выглядит так:
https://example.com/wp-login.php?redirect_to=https%3A%2F%2Fexample.com%2image-name-goes-here%2F
Я надеюсь, что кто-то здесь уже сталкивался с этим или знает, что делать. Я понимаю, что это процесс устранения, и я уже сделал достаточно много на данный момент.
Или есть ли способ проверить, действительно ли это перенаправление присутствует где-либо, чтобы я мог его отключить? Я имею в виду перенаправление с https://example.com/wp-login.php?
Я также слышал, что могут быть ссылки в базе данных, которые перенаправляют на такие ссылки, как показанная выше.
Большое спасибо за ваше время заранее
ps: вход на фронтенд в порядке, но ошибки отображаются в Screaming Frog Spider Crawl и других анализах.
===============================================
Добавьте приведенный ниже код в файл functions.php
function redirect_login_page()
{
$login_page = home_url('/login/'); //ссылка на вашу страницу перенаправления здесь
$page_viewed = basename($_SERVER['REQUEST_URI']);
if ($page_viewed == "wp-login.php" && $_SERVER['REQUEST_METHOD'] == 'GET') {
wp_redirect($login_page);
exit;
}
}
add_action('init', 'redirect_login_page');
Ответ или решение
Проблема, описанная вами, связана с внутренними ошибками сервера (500 ошибка) на странице wp-login.php. Давайте рассмотрим возможные причины и шаги по их устранению.
Причины
-
Проблемы с плагинами или темой: Иногда плагины или темы могут вызывать конфликт, который приводит к ошибкам на сервере. Вы уже пробовали деактивировать плагины, но стоит проверить это на стандартной теме WordPress (например, Twenty Twenty-One), чтобы исключить проблемы с вашей темой.
-
Ошибки в файле .htaccess: Хотя вы проверили .htaccess и не нашли повреждений, попробуйте сбросить его код. Отключите все настройки и замените содержимое .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
-
Проблемы на стороне сервера: Ваша хостинг-компания, возможно, применяет слишком строгие ограничения. Попробуйте отключить защиту от брутфорс-атак на некоторое время, чтобы проверить, связана ли проблема с этим.
-
Проблемы с конфигурацией PHP: Убедитесь, что версия PHP (7.2) поддерживается вашим сайтом, и попробуйте обновить до более новой версии (рекомендуется 7.4 или выше, если это возможно).
-
Ошибки в базе данных: Возможно, в базе данных содержатся старые или неправильные ссылки, которые вызывают редиректы. Проверьте таблицу
wp_options
и убедитесь, что опцииsiteurl
иhome
указаны правильно. Также можно просмотреть таблицы постов и метаданных для нежелательных ссылок.
Решение проблемы с редиректами
Для решения проблемы с редиректами вы можете добавить функцию в файл functions.php
вашей темы, как было предложено в вашем вопросе:
function redirect_login_page()
{
$login_page = home_url('/login/'); // Ваша страница редиректа здесь
$page_viewed = basename($_SERVER['REQUEST_URI']);
if ($page_viewed == "wp-login.php" && $_SERVER['REQUEST_METHOD'] == 'GET') {
wp_redirect($login_page);
exit;
}
}
add_action('init', 'redirect_login_page');
Дополнительные рекомендации
-
Логи сервера: Проверьте логи сервера (access.log и error.log) для выявления конкретных причин возникновения 500 ошибок. Это может дать вам больше информации о том, что происходит.
-
Сканирование на наличие вредоносного ПО: Убедитесь, что ваш сайт не поврежден и на нем нет вредоносного ПО, так как это также может вызвать внутренние ошибки.
-
Инструменты отладки: Используйте плагины для отладки, такие как Query Monitor, чтобы получить больше информации о запросах и ошибках.
-
Контакт с поддержкой хостинга: Если вы не можете самостоятельно обнаружить проблему, возможно, вам стоит обратиться к поддержке вашего хостинг-поставщика с подробным описанием проблемы.
Если у вас возникнут дополнительные вопросы или потребуется дополнительная помощь, не стесняйтесь обращаться!