Изменение URL входа без плагина
Я хочу изменить URL входа в мою установку WordPress, чтобы он отличался от /wp-admin.php
Я планирую сделать это и рассматриваю вариант изменения файла .htaccess, добавив:
RewriteRule ^login$ http://yourdomain.com/wp-login.php [NC, L]
Однако, насколько я понимаю, переход по /wp-admin все еще позволяет людям войти в систему, используя эту ссылку. Я думаю о создании PHP-редиректа, чтобы когда пользователь вводит /wp-admin, его перенаправляло на страницу 404 (страница не найдена).
Какой самый лучший способ изменить URL входа без использования плагина и с соблюдением самых высоких стандартов безопасности?

О смене URL для входа, я уже сделал это самостоятельно. Это помогает защитить сайт и предотвратить брутфорс. Вы можете изменить это в файле .htaccess. Но также нужно добавить фильтр для замены старого URL входа в WordPress. Пример для моего сайта: Файл .htaccess:
RewriteRule ^signin(.*) wp-login.php?%{QUERY_STRING}
В вашей теме или кастомном плагине можно добавить фильтр, чтобы WordPress показывал правильный URL входа.
add_filter( 'login_url', 'my_login_page', 10, 2 );
function my_login_page( $login_url, $redirect ) {
return str_replace("wp-login.php","signin",$login_url);
}
add_action( 'login_form', 'replace_login_submit_form',1);
function replace_login_submit_form() {
$your_content = ob_get_contents();
$your_content = str_replace("wp-login.php","signin",$your_content);
ob_get_clean();
echo $your_content;
}
Надеюсь, это поможет вам!

Добавьте этот код в файл functions.php
после этого вы не сможете получить доступ к странице по адресу https://www.thebetacoders.com/wp-admin
Теперь вы сможете получить доступ к странице по адресу https://www.thebetacoders.com/wp-login.php?customtext
Измените переменные $new_login
в соответствии с вашими потребностями.
<?php
function redirect_to_nonexistent_page()
{
$new_login = 'customtext';
if (strpos($_SERVER['REQUEST_URI'], $new_login) === false) {
wp_safe_redirect(home_url('NonExistentPage'), 302);
exit();
}
}
add_action('login_head', 'redirect_to_nonexistent_page');
function redirect_to_actual_login()
{
$new_login = 'customtext';
if (parse_url($_SERVER['REQUEST_URI'], PHP_URL_QUERY) == $new_login && ($_GET['redirect'] !== false)) {
wp_safe_redirect(home_url("wp-login.php?$new_login&redirect=false"));
exit();
}
}
add_action('init', 'redirect_to_actual_login');

Не понимаю, почему никто не использует стандартный способ WordPress для этого.
add_filter( 'login_url', 'my_login_page', 10, 3 );
function my_login_page( $login_url, $redirect, $force_reauth ) {
return home_url( '/my-login-page/?redirect_to=' . $redirect );
}
Следующий пример вернет URL для входа http://example.com/my-login-page/ для функции wp_login_url():
скопировано из примеров: https://developer.wordpress.org/reference/hooks/login_url/

Это возможно путем создания нового файла, аналогичного существующему wp-login.php. Необходимо выполнить следующие шаги:
Рекомендация: Сделайте резервную копию файла wp-admin.php перед выполнением следующих инструкций.
- Откройте место установки WordPress, если он находится в корне, просто найдите файл с именем wp-login.php
- Теперь создайте новый PHP-файл и назовите его в соответствии с новым URL для входа, например, если вы хотите изменить URL входа с www.yoursite.com/wp-admin на www.yoursite.com/iamgaurav, создайте новый файл с именем: iamgaurav.php
- Скопируйте весь код из существующего файла wp-login.php и вставьте его в новый файл iamgaurav.php
- Замените все упоминания wp-login на iamgaurav (удобно сделать массовую замену через любой редактор)
- Сохраните этот файл и удалите оригинальный wp-login.php из корневой директории.
Готово. Очистите кеш и проверьте вход по новому URL: www.yoursite.com/iamgaurav
При попытке входа по www.yoursite.com/wp-admin будет возникать ошибка 404.
Надеюсь, это поможет.
Спасибо.
