wordpressのサブディレクトリ環境で「SiteGuard WP Plugin」を設定してみた
サイトアドレス(home)とwordpressアドレス(siteurl)が同じであれば、wpプラグインのサイトガード導入で迷うことはないと思います。
問題は、サイトアドレス(home)とwordpressアドレス(siteurl)が異なる場合、たとえばwordpressアドレス(siteurl)が1階層下にある時、ちょっと戸惑う時がありますので、自分が設定した時の体験談を紹介します。
最初にうまくいかなかった原因
自分は最初に以下記事の投稿者の方と同じような現象が発生しました。(ログインURL変更後の画面が表示されないエラー)
そして、上記の記事内で紹介されていたURLの対応で、いったんログインURL変更後の画面が表示されるようにはなりました。
ただ、その後に動作確認をしていたら、
・ログインURL変更後の画面が表示される
・元々の通常ログイン画面も表示される ←本当は404にならないといけない
という現象が起きており、わけのわからないことになっておりました。
対処法
原因は「.htaccess」にありました。
じつは自分の場合、もともとサイトアドレス(home)とwordpressアドレス(siteurl)が同一だったサイトを、他サーバーへ移管させる際、wordpressデータはサブディレクトリ(1階層下)に移動させる、という設定をしていました。
それにより、
・サイトアドレス(home)に.htaccess
・wordpressアドレス(siteurl)に.htaccess
という状況が生まれていました。
結論としては、SiteGuard WP Pluginの「ログインURL変更後の画面が表示されない」などのエラーは、「.htaccess」のリダイレクト設定の不備によるものが多いかと思います。
自分の場合、
・サイトアドレス(home)に.htaccess
というように一つの設定ファイルに戻してあげて、それから再度プラグインの再設定をしなおしたところ、通常通りに動くようになりました。
ただし、注意点としては、この時の.htaccessは、
#SITEGUARD_PLUGIN_SETTINGS_START
#==== SITEGUARD_RENAME_LOGIN_SETTINGS_START
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /amauga/
RewriteRule ^wp-signup\.php 404-siteguard [L]
RewriteRule ^wp-activate\.php 404-siteguard [L]
RewriteRule ^checkmate(.*)$ /サブディレクトリの名前/wp-login.php$1 [L] </IfModule>
#==== SITEGUARD_RENAME_LOGIN_SETTINGS_END
#SITEGUARD_PLUGIN_SETTINGS_END
のように、サブディレクトリを考慮した記載をしてあげることが必要です。