WordPressはそのままの設定だとブルートフォース攻撃などに脆弱なため、対策が必要になります。
色々なプラグインがあるのですが、その中でも「SiteGuard WP Plugin」は国産で無料かつ設定もわかりやすいので個人的に気に入っています。
…ただ、WordPressをルートディレクトリ以外にインストールすると管理ページアクセス制限が動かなくなってしまうようです。
※管理ページアクセス制限とは、ログインしていないユーザーには管理ページ(/wp-admin/)へアクセスさせなくするSiteGuard WP Plugin独自の機能です
動作環境
以下がWebサイトのURLだとして、
http://example.com/
実際には以下のURLにWordPressをインストールしているような場合です。
http://example.com/wp/
※WordPressをルートディレクトリ以外にインストールする方法は、以下公式サイトを参照
WordPress を専用ディレクトリに配置する
対処方法
「/wp/.htaccess」が生成されているはずなので修正します。
※ルートディレクトリではなく「/wp/」配下です
以下のような感じになります。
#SITEGUARD_PLUGIN_SETTINGS_START
#==== SITEGUARD_RENAME_LOGIN_SETTINGS_START
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /wp/
RewriteRule ^wp-signup\.php 404-siteguard [L]
RewriteRule ^wp-activate\.php 404-siteguard [L]
RewriteRule ^login_12345(.*)$ wp-login.php$1 [L] # ここを修正
</IfModule>
#==== SITEGUARD_RENAME_LOGIN_SETTINGS_END
#==== SITEGUARD_ADMIN_FILTER_SETTINGS_START
↓
#SITEGUARD_PLUGIN_SETTINGS_START
#==== SITEGUARD_RENAME_LOGIN_SETTINGS_START
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /wp/
RewriteRule ^wp-signup\.php 404-siteguard [L]
RewriteRule ^wp-activate\.php 404-siteguard [L]
RewriteRule ^login_12345(.*)$ /wp/wp-login.php$1 [L]
</IfModule>
#==== SITEGUARD_RENAME_LOGIN_SETTINGS_END
#==== SITEGUARD_ADMIN_FILTER_SETTINGS_START
※「login_12345」は環境によって異なります
解説
元々は、
http://example.com/wp/login_12345
にアクセスしたらログイン用phpファイルである
http://example.com/wp-login.php
を実行する動作になっています。
が、WordPressのインストールディレクトリを変更しているせいで上記ファイルが見つからなくなってしまいます。
そのため、WordPressインストール先の
http://example.com/wp/wp-login.php
を指定するようにしています。