ディレクトリ保護(Basic認証)


共用サーバーで特定ディレクトリをパスワード付きで制限するには、.htaccess による Basic 認証が最も手軽で効果的です。
このページでは .htpasswd の作成方法と .htaccess での設定手順を解説します。


  1. Basic認証の概要と仕組み
  2. パスワードファイル(.htpasswd)の作成
  3. .htaccessによる認証設定
  4. 注意点とセキュリティ補足
  5. まとめ

1. Basic認証の概要と仕組み

Basic 認証とは、Apache標準のアクセス制御機能です。
ブラウザアクセス時に「ユーザー名+パスワード」の入力が求められ、認証が通らなければそのディレクトリ配下のファイルにはアクセスできません。

  • 対象:任意のディレクトリ(例:管理ページ、設定ファイル、開発用エリア など)
  • 設定ファイル:.htaccess(アクセスルール)、.htpasswd(ユーザー情報)

2. パスワードファイル(.htpasswd)の作成

SSHが使える場合(Linuxサーバー)

htpasswd -c /home/youruser/.htpasswd adminuser

実行後、パスワードの入力を求められます。-c は新規作成時のみ使用。

SSHが使えない場合(FTPのみ)

オンラインの htpasswd生成ツール を使って下記のような文字列を生成:

adminuser:$apr1$8mKq1B8G$y8pDgR0D9Fh9x5wN1EcHa/

これを .htpasswd という名前で保存し、アクセス制限したいディレクトリの外にFTPでアップロードしてください。


3. .htaccessによる認証設定

制限をかけたいディレクトリに .htaccess ファイルを配置し、以下のように記述します。

AuthType Basic
AuthName "Restricted Area"
AuthUserFile /home/youruser/.htpasswd
Require valid-user
  • AuthName:ブラウザに表示されるダイアログのメッセージ
  • AuthUserFile:絶対パスで指定(FTPではわからない場合はサーバー会社に確認)

4. 注意点とセキュリティ補足

注意点解説
.htpasswd はWebからアクセスできない場所に置く例:/home/youruser/.htpasswd など、公開ディレクトリ外に設置
パスを間違えると無限ループになるAuthUserFile のパスが誤っていると認証に失敗し続けます
.htaccessの権限は 644644(rw-r–r–)にしておくと安全です
特定のIPだけに認証不要でアクセス許可する場合Satisfy AnyAllow from を組み合わせて運用可能です

5. まとめ

  • Basic認証は 開発環境・管理画面・一時公開URL の保護に最適
  • .htaccess + .htpasswd を組み合わせることで 簡易的かつ強力なアクセス制御 が可能
  • 設定ミスで 500/401 エラーになるケースが多いため、テスト環境で確認してから本番適用が基本

[アクセス制御やカスタムエラーページ]

上部へスクロール