背景
今更ですが、wordpressのセキュリティを高くしようと思ってwp site enhancerというプラグインを入れてみました
このプラグインは、
1 2 | https: //yourdomein/wp-admin https: //yourdomein/wp-login.php |
のようなログインリンクを隠して、ログインしようとすると
「404 not found」
を表示する事ができるという優れたプラグインです
しかし、複数のオフィスや自宅でログインしていたことと
パソコンを買い換えたことによる影響でログイン自体ができなくなってしまいました
やったこと
- パソコンの買い替え
- 事務所や自宅でログインしていたので、IPアドレスが追加されていると思っていたが、ログインできず、、
- データベースをwp site enhancer導入前のDBへ戻してみた→状況変わらず
- FTPからプラグイン本体を削除→変わらない
- DBのsiteguard_historyの履歴にIPをぶち込んでみた→変わらない
- teratailに質問→すぐ解決!
解決方法
- plugins/該当のプラグイン削除
- .htaccessの内部修正
.htaccessは完全に盲点でしたが、中身を確認したところすぐにこれだ!とわかりました
下記の内容を全て削除して保存→ブラウザのキャッシュクリアで解決する事ができました!
※.htaccessはFTPから確認する事ができます。wordpressのrootディレクトリに入ってます
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | # BEGIN WP Hide & Security Enhancer #SITEGUARD_PLUGIN_SETTINGS_START #==== SITEGUARD_RENAME_LOGIN_SETTINGS_START <IfModule mod_rewrite.c> RewriteEngine on RewriteBase / RewriteRule ^wp-signup\.php 404-siteguard [L] RewriteRule ^wp-activate\.php 404-siteguard [L] RewriteRule ^server_login_page_dummy(.*)$ wp-login.php$1 [L] </IfModule> #==== SITEGUARD_RENAME_LOGIN_SETTINGS_END #==== SITEGUARD_ADMIN_FILTER_SETTINGS_START <IfModule mod_rewrite.c> RewriteEngine on RewriteBase / RewriteRule ^404-siteguard - [L] RewriteRule ^wp-admin/css - [L] RewriteRule ^wp-admin/images - [L] RewriteRule ^wp-admin/admin-ajax\.php - [L] RewriteRule ^wp-admin/site-health\.php - [L] RewriteCond %{REMOTE_ADDR} !^125\.58\.121\.42$ RewriteRule ^wp-admin 404-siteguard [L] </IfModule> #==== SITEGUARD_ADMIN_FILTER_SETTINGS_END #SITEGUARD_PLUGIN_SETTINGS_END |
ログインリンクの変更方法
.htaccesssを下記のコードを参考にして編集を行う事でログインのリンクを変更する事ができます。
参考にしたリンクは最後に記載してます
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^enter/?$ /wp-login.php?45jfvo9204 [R,L] RewriteCond %{HTTP_COOKIE} !^.*wordpress_logged_in_.*$ RewriteRule ^dashboard/?$ /wp-login.php?45jfvo9204&redirect_to=/wp-admin/ [R,L] RewriteRule ^dashboard/?$ /wp-admin/?45jfvo9204 [R,L] RewriteRule ^register/?$ /wp-login.php?45jfvo9204&action=register [R,L] RewriteCond %{SCRIPT_FILENAME} !^(.*)admin-ajax\.php RewriteCond %{HTTP_REFERER} !^(.*)yoursitedomain/wp-admin RewriteCond %{HTTP_REFERER} !^(.*)yoursitedomain/wp-login\.php RewriteCond %{HTTP_REFERER} !^(.*)yoursitedomain/enter RewriteCond %{HTTP_REFERER} !^(.*)yoursitedomain/dashboard RewriteCond %{HTTP_REFERER} !^(.*)yoursitedomain/register RewriteCond %{QUERY_STRING} !^45jfvo9204 RewriteCond %{QUERY_STRING} !^action=logout RewriteCond %{QUERY_STRING} !^action=rp RewriteCond %{QUERY_STRING} !^action=register RewriteCond %{QUERY_STRING} !^action=postpass RewriteCond %{HTTP_COOKIE} !^.*wordpress_logged_in_.*$ RewriteRule ^.*wp-admin/?|^.*wp-login\.php /not_found [R,L] RewriteCond %{QUERY_STRING} ^loggedout=true RewriteRule ^.*$ /wp-login.php?45jfvo9204 [R,L] </IfModule> |
参考記事
「wordpress 」wp-hide-security-enhancer導入後、ログインできなくなってしまった場合の解決策について
セキュリティ向上のためのWordPress管理画面のログインURLカスタマイズ方法