開発環境もないサイトなどで「この一ページだけ文言だけ差し替えて、本番じゃないところで確認したい!」などのお願いされることも多々あると思います。
そういった場合に、インデックスされないように他のエンドユーザーにも見られないように、なおかつクライアントも確認しやすいように、とても簡易的ではありますが、特定のページにベーシック認証をする方法がありますので、紹介いたします。
目次
特定のページにベーシック認証をかけるコードがコチラ
<Files ~ "^\.(htaccess|htpasswd)$">
deny from all
</Files>
<Files *_test.php>
AuthUserFile /home/new-kensin-inc/www/realestate/.htpasswd
AuthGroupFile /dev/null
AuthName "Please enter your ID and password"
AuthType Basic
require valid-user
</Files>
基本的には普通のベーシック認証と変わりません。
一部ファイルを指定しているのですが、その部分で少し工夫している形になります。
簡単な解説
deny from all
<Files ~ "^\.(htaccess|htpasswd)$">
deny from all
</Files>
このコードはhtaccessやhtpasswdを見られないようにするためのコードなので、ベーシック認証を入れている時は必ず入れた方がいいです。
※htaccessを使用しているときだけでもセキュリティの強化につながります。
ファイルの指定
<Files *_test.php>
ここでベーシック認証をかけたいファイルを指定しています。
上記のように記載すると、index_test.phpやcontact_test.phpなど「_test.php」と末尾についているファイルは全て指定することができます。
htpasswdの位置を指定
AuthUserFile /home/sample/www/.htpasswd
フルパスの調べ方やhtpasswdの作り方などは過去の記事を参照ください。
https://t3l.org/web/basicauthentication/
ベーシック認証おなじみのコード
AuthGroupFile /dev/null
AuthName "Please enter your ID and password"
AuthType Basic
require valid-user
AuthGroupFile
ベーシック認証では必要ないので、null
Authname
だいたいのブラウザでIDパスワードを入力するボックスに表示される文言
Authtype
ベーシック認証を使うので「Basic」を記述
require valid-user
認証された全ユーザーをアクセス許可する
まとめ
サーバーの費用を節約するあまり開発環境を用意しないで制作するといったケースも中小企業やフリーランスの方などでは多いかと思います。
ただファイルの名前に_testを加えるだけでベーシック認証をかける事ができ、簡易的な確認用ページを用意することができますので、ご自身の環境に合わせてカスタマイズしてご使用いただけましたら嬉しいです。