いつまで経ってもわからない、WEBってやつは・・・(´・ω・`)

【 .htaccess 】ベーシック認証領域で特定ディレクトリを除外する方法

こんにちわ、ほそぼそとサッカーポテチを買ってカードを集めているゆでです(ΦωΦ)<きらきらデターw

web上で、「ベーシック認証」をかけたりすることってありますよね。
今回は除外する書き方メモです(*´ω`*)

ベーシック認証とは
Basic認証(ベーシックにんしょう、Basic Authentication)とは、HTTPで定義される認証方式の一つ。基本認証と呼ばれることも。
Basic認証では、ユーザ名とパスワードの組みをコロン “:” でつなぎ、Base64でエンコードして送信する。このため、盗聴や改竄が簡単であるという欠点を持つが、ほぼ全てのWebサーバおよびブラウザで対応しているため、広く使われている。
盗聴や改竄を防ぐため、後にDigest認証というユーザ名とパスワードをMD5でハッシュ化して送る方法が考えられた。(wikiより抜粋)

つまり、ベーシック認証のかかったディレクトリにアクセスすると下記みたいなポップアップが表示されるやつです(´・ω・)ノ

20140623_basic

そして、認証に失敗しつづけたりキャンセルになるとこういうエラーページ20140623_basic_error
が表示されるやつです(´・ω・
)ノ

ベーシック認証は認証を記述した「.htaccess」とユーザ名パスワードが記載された「htpasswd」で成り立ってるのが一般的です。

一般的なベーシック認証記述例(結構割愛します)

.htaccessへの記述

AuthUserFile /★/認証をかけたいディレクトリ/htpasswd
AuthGroupFile /dev/null
AuthType Basic
AuthName WebAccess

require valid-user

 ※「★」の部分はサーバの絶対パスをいれてください(*´ω`*)

上記を記述した.htaccessを認証をかけたいディレクトリに入れます。

豆知識
サーバの絶対パスがわからない方は

 と記述したphpファイルをサーバ上にアップしてアクセスするとわかります(∩´∀`)∩ワーイ

 htpasswdファイルの作成

生成エディタがWEB上にあるので、使わせていただくと楽です!

  • lufttools・・サクッとパスワードとユーザIDが作れます(*´ω`*)
  • .htaccessEditor・・htaccessの中身も作成できちゃう(*´ω`*)

などなど。

パスワードとユーザIDを記述した「htpasswd」を指定した場所に入れます。

例として入れてみた

認証をかけたいURL・・http://www.fumufumu.info/basic_test/

なので、こうなる(ΦωΦ)。

  • .htaccessファイルは「/basic_test/」ディレクトリに入れる
  • めんどくさいのでhtpasswdファイルも「/basic_test/」ディレクトリに入れる
  • そうすると.htaccessのAuthUserFileのパスは「/サーバの絶対パス/basic_test/」となる

レッツTESTアクセス(*´ω`*)!
http://www.fumufumu.info/basic_test/(ベーシック認証テスト)
※ユーザIDとパスワードは教えません(`・ω・´)ゞ

ベーシック認証ディレクトリ下だけど、特定のディレクトリだけベーシック認証を除外する(ΦωΦ)

とっても簡単。

ベーシック認証を除外したいディレクトリに除外する記述をした「.htaccess」を置くだけ

誰でもオッケー記述

Satisfy any
order allow,deny
allow from all

とりあえず「/basic_test/」ディレクトリの下に「jogai」フォルダを作ってそこに置いてみた。

レッツアクセス(*´ω`*)!
http://fumufumu.info/basic_test/jogai/(ベーシック認証除外テスト)

あ、でけたー(*´ω`*)w

ちなみに、制御はIPアドレスで制限したり、色々できるみたいですね(*´∀`*)

サンプル

特定のグローバルIP以外はベーシック認証をかける記述

Order deny,allow
Deny from all
Allow from 除外IPアドレス

AuthUserFile /★/除外ディレクトリ/htpasswd
AuthGroupFile /dev/null
AuthName MembersOnly
AuthType Basic
require valid-user

Satisfy any

 いつ使うのかな・・社内とかで使うときとかかもね(*´ω`*)!
とりあえずあんまりないけど特定のディレクトリを除外したい忘れがちなのでφ(..)メモ・・w