web-dev-qa-db-fra.com

Supprimer le formulaire de mot de passe perdu et l'URL

J'ai arrêté les réinitialisations de mot de passe pour tous les utilisateurs.

Je dois maintenant empêcher /wp-login.php?action=lostpassword de faire quoi que ce soit si quelqu'un introduisait manuellement l'URL dans son navigateur.

je ne veux pas que le formulaire de réinitialisation du mot de passe soit affiché.

Puis-je désactiver l'action transmise par l'URL ou puis-je rediriger /wp-login.php?action=lostpassword vers /wp-login.php?

1
Clarus Dignus

Bonjour S'il vous plaît essayez d'utiliser ceci dans votre functions.php, il redirigera l'utilisateur au formulaire de connexion lorsque l'utilisateur essaiera d'accéder à la page de mot de passe perdu:

add_action('init','possibly_redirect'); 
function possibly_redirect(){ 
   if (isset( $_GET['action'] )){  
     if ( in_array( $_GET['action'], array('lostpassword', 'retrievepassword') ) ) {
        wp_redirect( '/wp-login.php' ); exit;
     }
  }
}

Ou S'il vous plaît suivez ci-dessous l'approche utilisée à partir de cette réponse a répondu ici avec quelques détails basée sur les commentaires de @Clarus Dignus

function disable_lost_password() {
    if (isset( $_GET['action'] )){
        if ( in_array( $_GET['action'], array('lostpassword', 'retrievepassword') ) ) {
            wp_redirect( wp_login_url(), 301 );
            exit;
        }
    }
}
add_action( "login_init", "disable_lost_password" );
5
jas

Vous pouvez utiliser .htaccess et mod_rewrite .

Réponse interdite:

RewriteCond %{QUERY_STRING} ^action=lostpassword$ [NC]
RewriteRule ^wp-login.php$ - [F,NC]

Rediriger vers wp-login.php:

RewriteCond %{QUERY_STRING} ^action=lostpassword$ [NC]
RewriteRule ^wp-login.php$ wp-login.php [R=301,NC,QSD,L]

(pour le drapeau QSD, vous avez besoin d'Apache 2.4.0+)

1

Je sais que c'est un fil plus ancien, mais j'ai quelques améliorations à apporter. Premièrement, puisqu'ils peuvent utiliser GET ou POST, je vérifierais $ _REQUEST au lieu de $ _GET

Deuxièmement, redirigez-les dans un endroit inutile, au lieu de revenir sur votre site. Comme ' http://127.0.0.1 ' S'ils ne disposent pas d'un serveur Web, le bot se bloque au moins pendant quelques secondes dans l'attente d'une réponse. Tout ce que nous pouvons faire pour empêcher ces trous.

1
De Coder