Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
361
Help us understand the problem. What is going on with this article?

More than 5 years have passed since last update.

@yuwaita

いまさらながら、Basic認証のつけかた

久々にBasic認証をつけようとしたらやり方が全くわからなくなってたことに気づいたのでメモしておきます。

簡単なレシピ

  1. .htaccessファイルを作る
  2. .htaccess用のパスワード作成ツール(ここここなど)で.htpasswdファイルを作る
  3. 1と2をアップする。パーミッションは604 。
.htaccess
AuthUserfile /フルパス/.htpasswd
AuthGroupfile /dev/null
AuthName "Please enter your ID and password"
AuthType Basic
require valid-user

もっとくわしく

AuthUserfile /フルパス/.htpasswd
サーバーのルートディレクトリからの.htpasswdへのパスを指定する。/usr/local/...とか/home/pass/...とかそういうの。
AuthGroupfile /dev/null
グループごとにアクセスを許可する、という指定。「/dev/null」とは、そのようなファイルは存在しないという意味。つまりグループごとでのアクセス制限はしないという意味。
AuthName "Please enter your ID and password"
ダイアログに表示される文章を指定。日本語だと文字化けするようだ。
AuthType Basic
AuthTypeを指定。「Basic(ベーシック認証)」と「Digest(ダイジェスト認証)」の2種類があって、Digestのほうが安全らしい
require valid-user
ユーザーが誰であろうと、入力したIDとパスワードが合っていればアクセスできるという意味。特定ユーザーだけにアクセスさせたい場合は「require user xxx」とかする。
.htpasswd
IDとパスワードを書きこむファイル。.htpasswdというファイル名で作るらないといけないらしい。.htaccess用のパスワード作成ツールがネットにたくさん出回っているのでそこでコードを生成。例えばID/username,PASS/hogehogeとしたいとすると、username:us3HhKtHHqM0Uというコードを書けばよい。
パーミッション
パーミッションは604!これでだめなら644?
その他注意事項
ファイルの最後では改行したほうがいいかもしらんね。

いろいろな悩み

アップする場所

  • .htpasswdのファイルは、DocumentRootより上に設置すること。
  • それが無理な場合は.htaccessファイルに「AddHandler cgi-script htpasswd」の一行を加える。
  • もしくは.htaccess ファイルに.htaccessと.htpasswdにアクセスできなくさせる下記のようなコードを書く。
.htaccess
<Files ~ "^\.ht">
    Order allow,deny
    Deny from all
    Satisfy All
</Files>

500 Internal Server Error (T_T)

.htaccess ファイルに文法誤りがあると、500 Internal Server Error となる。再度チェックしてみること。

サーバーの設定によっては、.htaccessファイルの設定が無効になっていたり、設置場所が限定されていたり、ディレクティブの限定的な使用しか出来ない場合があって、その場合 500Internal Server Error が発生するとのこと。見たことないですが。そんなところは潔く諦めて他のサーバーを使うこと。

Authorization Required (T_T)

ID・パスワードには、記号は使えないかもしれないと思っている。今のところ使えた経験無し。使わなかったらうまくいくこと多し。なので記号を使わないで数字と英字だけでやってみてください。それでもだめなら単に記述間違いではと思います。

特定のIPからのみアクセスできるようにするには

下記を.htaccessに追加する。

.htaccess
Satisfy any

order deny,allow
allow from xx.xx.xx.xxx/xx.xx.xxx.xxx

deny from all

とても参考になったページ

361
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
361
Help us understand the problem. What is going on with this article?