Modificare l'URL di Login Senza Plugin
Voglio modificare l'URL di login della mia installazione WordPress allontanandolo da /wp-admin.php
Sto cercando di farlo e sto considerando di modificare il file .htaccess aggiungendo:
RewriteRule ^login$ http://tuodominio.com/wp-login.php [NC, L]
Da quello che ho capito, tuttavia, andando su /wp-admin le persone possono ancora accedere utilizzando quel link. Stavo pensando di implementare una sorta di reindirizzamento PHP in modo che quando l'utente digita /wp-admin venga indirizzato alla pagina 404 not found.
Qual è il modo migliore per modificare l'URL di login senza utilizzare un plugin e con i più alti standard di sicurezza?

Per cambiare l'URL di login, l'ho già fatto personalmente. Mi aiuta a proteggere il mio sito e prevenire attacchi brute force. Puoi modificarlo nel file .htaccess. Ma devi anche aggiungere il filtro per sostituire il vecchio URL di login in WordPress. Esempio per il mio sito: File .htaccess:
RewriteRule ^signin(.*) wp-login.php?%{QUERY_STRING}
Nel tuo tema o in un plugin personalizzato, puoi aggiungere il filtro per assicurarti che WordPress mostri il corretto URL di login.
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;
}
Spero che ti possa essere utile!

Aggiungi questo codice nel file functions.php
dopodiché non potrai più accedere alla tua pagina all'indirizzo https://www.thebetacoders.com/wp-admin
Ora potrai accedere alla tua pagina all'indirizzo https://www.thebetacoders.com/wp-login.php?customtext
Modifica le variabili $new_login
secondo le tue esigenze.
<?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');

Non sono sicuro del perché nessuno utilizzi il metodo standard di WordPress per fare questo.
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 );
}
Il seguente esempio restituirebbe un URL di login http://example.com/my-login-page/ per la funzione wp_login_url():
copiato dagli esempi di: https://developer.wordpress.org/reference/hooks/login_url/

Ciò può essere possibile creando un nuovo file simile al tuo file wp-login.php esistente. Ecco i passaggi da seguire:
Suggerimento: Esegui un backup del file wp-admin.php prima di seguire le istruzioni seguenti.
- Apri la posizione di installazione del tuo WordPress, se è nella root cerca semplicemente il file chiamato wp-login.php
- Ora, crea un nuovo file php e chiamalo con il tuo nuovo URL di accesso, ad esempio se vuoi che il tuo URL di accesso sia www.yoursite.com/iamgaurav invece di www.yoursite.com/wp-admin, crea il nuovo file chiamato: iamgaurav.php
- Ora copia tutti i codici del file wp-login.php esistente e incollali nel tuo nuovo file iamgaurav.php
- Cambia tutte le istanze esistenti di wp-login con iamgaurav (facile con l'opzione di sostituzione in massa tramite qualsiasi editor)
- Ora salva questo file e rimuovi il file wp-login.php originale dalla root.
Hai finito. Pulisci la cache e verifica l'accesso con il nuovo URL: www.yoursite.com/iamgaurav
Riceverai un errore 404 nel caso qualcuno provi ad accedere tramite www.yoursite.com/wp-admin
Spero sia utile.
Grazie
