3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【Bluehost】Wordpressの管理画面だけBasic認証をかけてみる

Last updated at Posted at 2017-10-16

#やること

  • Wordpressの管理画面にのみBasic認証をかける
  • .htaccessの作成(Basic認証を使う設定を記載する)ドキュメントルートと、wp-adminディレクトリに配置する。
    ⇒Basic認証をかけたいファイルと同じディレクトリに作成する。
  • .htpasswdの作成(Basic認証時に利用するユーザーとパスワードを記載する)

#前提

  • Bluehost上で作業を行う
  • Wordpressはインストール済み
  • Wordpressの管理画面のパスは、/home/bluehost/public_html/wp-login.phpとする

#手順
1.Bluehostのコンソールにログインする。

2.ファイルマネージャーの画面を開く。

[Advanced]⇒[ファイルマネージャー]
WS000000.JPG

3.隠しファイルを表示できるように設定する。

[設定]⇒[非表示のファイルの表示 (dotfiles)]にチェック⇒[Save]
WS000001.JPG

4.Wordpressの管理画面を表示するファイル(wp-login.php)のディレクトリを表示する。

[/home/bluehost]⇒[public_html]
WS000002-1.jpg

5.「.htaccess」を編集する。

[.htaccess]を選択⇒右クリック⇒[Edit]⇒[Edit]⇒下記内容を追記⇒[変更の保存]
WS000002.JPG
もう一回[Edit]します。
WS000003.JPG

Basic認証に必要な設定を追記します。
WS000004.JPG

●追記したもの
<Files wp-login.php>
AuthType Basic
AuthUserFile /home/bluehost/public_html/.htpasswd
AuthGroupFile /dev/null
AuthName "User and Password"
Require valid-user
</Files>
●編集前
# BEGIN WordPress

AddHandler application/x-httpd-ea-php70 .php
<IfModule mod_expires.c>
	ExpiresActive On
	ExpiresByType image/jpg "access plus 1 year"
	ExpiresByType image/jpeg "access plus 1 year"
	ExpiresByType image/gif "access plus 1 year"
	ExpiresByType image/png "access plus 1 year"
	ExpiresByType text/css "access plus 1 month"
	ExpiresByType application/pdf "access plus 1 month"
	ExpiresByType text/javascript "access plus 1 month"
	ExpiresByType text/html "access plus 2 hours"
	ExpiresByType image/x-icon "access plus 1 year"
	ExpiresDefault "access plus 6 hours"
</IfModule>
Header set X-Endurance-Cache-Level "2"
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /~bluehost/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /~bluehost/index.php [L]
</IfModule>


# END WordPress



●編集後
=============================================================================
# BEGIN WordPress

AddHandler application/x-httpd-ea-php70 .php
<IfModule mod_expires.c>
	ExpiresActive On
	ExpiresByType image/jpg "access plus 1 year"
	ExpiresByType image/jpeg "access plus 1 year"
	ExpiresByType image/gif "access plus 1 year"
	ExpiresByType image/png "access plus 1 year"
	ExpiresByType text/css "access plus 1 month"
	ExpiresByType application/pdf "access plus 1 month"
	ExpiresByType text/javascript "access plus 1 month"
	ExpiresByType text/html "access plus 2 hours"
	ExpiresByType image/x-icon "access plus 1 year"
	ExpiresDefault "access plus 6 hours"
</IfModule>
Header set X-Endurance-Cache-Level "2"
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /~bluehqe5/
RewriteRule ^index\.php$ - [L]
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
#RewriteRule . /~bluehqe5/index.php [L]
</IfModule>

# END WordPress

<Files wp-login.php>
AuthType Basic
AuthUserFile /home/bluehost/public_html/.htpasswd
AuthGroupFile /dev/null
AuthName "User and Password"
Require valid-user
</Files>


# END WordPress

6.wp-adminディレクトリにも.htaccessを作成。
以下の内容を記載します。

<Files admin-ajax.php>
Satisfy Any
Order allow,deny
Allow from all
</Files>

7.認証情報(ユーザー名とパスワード)の作成

下記ブラウザにアクセス⇒[ユーザー名]と[パスワード]を入力し、[.htpasswdを作成]⇒[.htpasswd]に出力された文字列をコピーする。
.htpasswdを作成
WS000005.JPG

7.「.htpasswd」の作成(認証情報ファイル)

[/home/bluehost]⇒[public_html]⇒[+ファイル]⇒[新しいファイル名]に「.htpasswd」を入力⇒[Create New File]
WS000006.JPG

9.手順6で作成し、コピーした認証情報を手順7で作成した「.htpasswd」に貼り付ける。

[/home/bluehost]⇒[public_html]⇒[.htpasswd]を選択⇒右クリック⇒[Edit]⇒[Edit]⇒手順6の内容を貼り付け⇒[変更の保存]
WS000007.JPG

10.ブラウザでアクセスして動作確認をする。

  • フロント側にBasic認証がかかっていないこと
  • 管理画面にのみBasic認証がかかっていること
  • 設定した認証情報でログインできること

#参考URL
[Bluehost] Basic認証を掛ける
Bluehost Web Hosting Help
WordPressのログイン画面にBasic認証をかけて二重ロックする

#つまづいたところ
①「files wp-login.php」が効かない
 ⇒Webサイト全体に認証が走ってしまったりしていました。

解決策
RewiteCondとRewriteRuleをコメントアウトしないと、読み込んでくれませんでした。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /~bluehqe5/
RewriteRule ^index\.php$ - [L]
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
#RewriteRule . /~bluehqe5/index.php [L]
</IfModule>

# END WordPress

<Files wp-login.php>
AuthType Basic
AuthUserFile /home/bluehost/public_html/.htpasswd
AuthGroupFile /dev/null
AuthName "User and Password"
Require valid-user
</Files>

②管理画面だけ認証が効かない。
 ⇒フロント側に認証がかかったり、レイアウトが崩れたり、管理画面自体が表示されなくなる事象が発生

解決策
wp-adminディレクトリに、下記内容の「.htaccess」を作成

<Files admin-ajax.php>
Satisfy Any
Order allow,deny
Allow from all
</Files>
3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?