WordPressのデフォルトのログインURLを変更するだけでも、総当たり攻撃(ブルートフォースアタック)などを回避する効果は得られます。
今回はプラグインを使わずにログインURLを変更する方法をご紹介します。 .htacsess に変更を加えますので、実行前には必ずバックアップをお願いします。
もくじ
リダイレクトを停止(無効化)する
まずWordPressのデフォルトのログインURLはこうです。
http://ドメイン名/インストールディレクトリ/wp-login.php
実はこのログイン画面には簡単にアクセスできるようになっています。
例えば、ドメイン名/login と打ち込んでみると、ログイン画面へリダイレクトされます。
これは管理画面のURLを忘れてしまっても簡単にアクセスできるよう配慮されているためです。
ということは、サイトがWordPressで運用されていることが分かり、何の対策もしていなければあっという間にログイン画面に到達できてしまいます。
なので、まずはこのリダイレクトを停止(無効化)します。
この記述は、ログインURLをwp-login.phpから変更しても、URL/loginからリダイレクトされる を参考にさせていただきました。より詳しく解説されていますのでおすすめです。
設定その1:function.php に下記を記述
add_action関数でリダイレクトされるので、その関数をこれで打ち消します。
remove_action( 'template_redirect', 'wp_redirect_admin_locations', 1000 );
設定その2:login、admin、dashboardの固定ページを作成
設定その1で、リダイレクトされなくなりましたが、念のため、login
, admin
, dashboard
というスラッグで固定ページを用意しておきます。
.htacsessにリダイレクトを記述
次にURLの変更を行います。 まずはサーバに接続しWordPressをインストールしているディレクトリにアクセスします。 そして、そこにある.htacsessファイルを開き下記を追記します。
<IfModule mod_rewrite.c> RewriteEngine on RewriteBase /ドメイン名/インストールディレクトリ/ RewriteRule ^好きな文字列(.*)$ wp-login.php$1 [L] </IfModule>
例えば『好きな文字列』を「testURL」とすると、新しいログインURLは
http://ドメイン名/インストールディレクトリ/testURL
となります。 これでデフォルトのログインURLが変更され、.htacsessで設定したURL以外でログイン画面が表示されなくなりました。
変更したログインURLを忘れてしまうと、ログイン画面に到達できませんのでご注意ください。