共用サーバーで特定ディレクトリをパスワード付きで制限するには、.htaccess
による Basic 認証が最も手軽で効果的です。
このページでは .htpasswd
の作成方法と .htaccess
での設定手順を解説します。
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の権限は 644 | 644(rw-r–r–)にしておくと安全です |
特定のIPだけに認証不要でアクセス許可する場合 | Satisfy Any と Allow from を組み合わせて運用可能です |
5. まとめ
- Basic認証は 開発環境・管理画面・一時公開URL の保護に最適
.htaccess
+.htpasswd
を組み合わせることで 簡易的かつ強力なアクセス制御 が可能- 設定ミスで 500/401 エラーになるケースが多いため、テスト環境で確認してから本番適用が基本