プログラミング備忘録 foo

ベーシック認証(ファイル単位)

目的

  • IDとパスワードを知っている者だけ、特定のファイルへアクセス可能にしたい。

実行結果

ベーシック認証(ファイル単位)

※実際の挙動を確認

解説

  • 正しいIDとパスワードを入れないと先へ進めません。アクセス制限をかけたい時に役立ちます。
  • 上記の実行結果のテキストリンクをクリックすると、ベーシック認証の画面へ遷移します。IDはab、パスワードはcdです。
  • .htaccessと.htpasswdの2つを作る事でアクセス制限が実現します。
  • .htaccessにはベーシック認証の構文を書きます(後述)。
  • .htpasswdにはIDとパスワードを書きます(後述)。

.htaccess

<FilesMatch "admin123">
	AuthType Basic
	AuthName "Member Only"
	AuthUserFile /home/ユーザー名/pub/note-book.foo/.htpasswd
	Require valid-user
</FilesMatch>
  • .htaccessという名前のファイルを作り、そのファイルに上記の構文を書き、ルートディレクトリー(トップページがある階層)に置きます。
  • .htaccessという名前のファイルを作れない場合はhtaccess.txtというテキストファイルを作り、アップロード後にサーバー側で.htaccessと名前を変更します。
  • 1行目でadmin123という文字列を含む全ファイルを指定しています。文字列は任意です。将来、アクセス制限をかけたくないファイルにadminという文字列を使う可能性を考えて、マッチしにくいadmin123という文字列にしました。セキュリティーを重視するなら無意味な文字列にするのもアリです。
  • 4行目のAuthUserFileの後には.htpasswdを置いた場所の絶対パス(フルパス)を書いてください。

.htpasswd

ab:zvHRvHjSXkDXQ
  • まずはGoogle検索で「htpasswd 生成」と検索して、生成サイトで.htpasswd用のIDとパスワードを作ります。上記の構文はIDがab、パスワードがcdの.htpasswdです。生成サイトではパスワードが暗号化されます。
  • .htpasswdという名前のファイルを作り、生成したIDとパスワードを書き、ルートディレクトリーに置きます。
  • .htpasswdという名前のファイルを作れない場合はhtpasswd.txtというテキストファイルを作り、アップロード後にサーバー側で.htpasswdと名前変更をします。