すべてのユーザーのパスワードリセットを停止しました。
誰かが手動でURLをブラウザに入力した場合、/wp-login.php?action=lostpassword
が何もしないようにする必要があります。
つまり、パスワードリセットフォームを表示したくありません。
URLによって渡されているアクションを無効にすることはできますか?または/wp-login.php?action=lostpassword
を/wp-login.php
にリダイレクトすることはできますか?
こんにちはあなたのfunctions.phpでこれを使用してみてくださいそれはユーザーが失われたパスワードのページにアクセスしようとしたときにログインフォームにユーザーをリダイレクトします:
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;
}
}
}
またはこの回答から使用されている以下のアプローチに従ってください 詳細をここに回答 @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" );
.htaccess および mod_rewrite を使用できます。
禁止された応答:
RewriteCond %{QUERY_STRING} ^action=lostpassword$ [NC]
RewriteRule ^wp-login.php$ - [F,NC]
Wp-login.phpにリダイレクトします。
RewriteCond %{QUERY_STRING} ^action=lostpassword$ [NC]
RewriteRule ^wp-login.php$ wp-login.php [R=301,NC,QSD,L]
(QSDフラグの場合はApache 2.4.0以降が必要です)
私はこれが古いスレッドであることを知っていますが、私はいくつかの改良点があります。まず、GETやPOSTを使用できるので、$ _ GETではなく$ _REQUESTをチェックします。
次に、あなたのサイトに戻るのではなく、役に立たない場所にリダイレクトします。 ' http://127.0.0.1 'のように彼らがそこにWebサーバを持っていない場合、ボットは少なくとも数秒間応答を待って停止します。これらの問題を解決するために私たちができることは何でも。