【 1、Basic認証(パスワード認証) 】 |
以下のような認証画面が表示されます。

まず始めに .htaccessファイルをアクセス制限をしたいディレクトリに作成します。「.(ドット)」がないと動作しないので注意してください。
.htaccessなどの「.(ドット)」があるファイルは通常隠しファイルとして見えないので、FFFTPを使用の場合は「表示」→「.で始まるファイルを表示」にしてください。それ以外のソフトをお使いの方は、各ソフトのマニュアルなどを参照して調べてみてください。
トップページからアクセス制限したい場合はindex.htmlがあるディレクトリに、トップページ以下に作成したい場合は、それ以下のディレクトリに作成します。
※ここでは、DocumentRoot(ルートディレクトリ)は
/virtual/user/public_html/www.hostname.com/としてます。ご使用のサーバによって異なるので、わからないときはプロバイダーにお問い合わせしてみてください。
例:トップページ以下の「test」というディレクトリ以下をアクセス制限する場合は下記に設置する。 /virtual/user/public_html/www.hostname.com/test/.htaccess
# cd
/virtual/user/public_html/www.hostname.com/test
# vi .htaccess
AuthUserFile
/virtual/user/htpass/.htpasswd AuthGroupFile /dev/null AuthName
MembersOnly AuthType Basic <Limit GET POST> require
valid-user </Limit>
←最後の行は必ず改行を入れる。
1行目は任意のディレクトリで構いませんが、Webからアクセスできない場所に作成してください。DocumentRoot(ルートディレクトリ)(index.htmlが置いてあるディレクトリ)以下に作成しないようにしてください。なぜかというと、一般ユーザはファイルを閲覧する権限はありませんが、万が一閲覧されてしまうと、 .htpasswdに記載されているユーザIDが分かってしまうからです。パスワードは暗号化されていますが、ユーザIDは暗号化されていないので、ユーザIDがばれてしまいます。ユーザIDが分かっていれば、パスワード解析ソフトなどを使えば比較的簡単にパスワードが解析されてしまいますので注意してください! 逆に、ユーザIDが分からなければ、ハイエンドPCでパスワード解析ソフトを使っても解析するのに、おそらく何十年とかかると思うので、ほぼ不可能です。
|
【 2、上記で作成した .htaccessの1行目で指定したディレクトリを作成する 】 |
# mkdir /virtual/user/htpass
|
【 3、「.htpasswd」ファイルを作成する 】 |
# cd /virtual/user/htpass
# htpasswd -c .htpasswd user
|
【 4、「.htpasswd」に接続可能ユーザを追加する 】 |
ユーザアカウントを追加するときは「-c」オプションなしで実行する。(-cオプションは新規作成時のみ)
# htpsswd .htpasswd
user2
上記コマンドを入力するとパスワードを聞かれるので、ご自分のパスワードを2回入力すると .htpasswdファイルがカレントディレクトリに生成されます。
※上記コマンドの「user
や user2」はユーザアカウントの例えですので、ご自分のアカウントを入力してください。
|
【 5、サイトの転送(ページのジャンプ) 】 |
ホームページを移転した時などによく使われる機能で、いままで使っていたホームページアドレスにアクセスがあった場合に、新しいホームページアドレスに自動で転送します。 サイトの転送は、メタタグでもできますがメタタグの場合は全てのページに設定しなければなりませんが、 .htaccessによるサイトの転送は、 .htaccessを指定したディレクトリ以下の全てのページに適用されます。
・記述例:DocumentRoot(ルートディレクトリ)からの絶対パスで指定する。
Redirect permanent /virtual/user/public_html/www.hostname.com/
http://linux.hayarimon.com/
※ご使用のブラウザによっては改行してあるように見えますが、改行はしません。 上記の記述は、「http://linux.hayarimon.com/」に転送する設定で、通常はindex.htmlがあるディレクトリに設置します。
・ちなみに、メタタグでの設定は以下のようになっています。
<META HTTP-EQUIV="refresh"
content="5;URL=http://linux.hayarimon.com/">
「content="5」は5秒後に転送するという事です。
|
【 6、ページが見つかりませんなどのエラーメッセージのカスタマイズ 】 |
Basic認証失敗などのエラーメッセージを自分で作成して表示させることができます。
まずは、エラーメッセージのHTMLを作成・設置して .htaccessに以下のように記述します。
・記述例
ErrorDocument 401
/virtual/user/public_html/www.hostname.com/error/401.html ErrorDocument 403
/virtual/user/public_html/www.hostname.com/error/403.html ErrorDocument 404
/virtual/user/public_html/www.hostname.com/error/404.html ErrorDocument 500
/virtual/user/public_html/www.hostname.com/error/500.html
.htaccessが置かれているディレクトリから見た相対パスを書くのではなく、お使いのサーバのDocumentRoot(ルートディレクトリ)からの絶対パスを記します。
・エラーメッセージのコードは以下のようになっています。
ErrorDocument
401 − ユーザ認証失敗エラー ErrorDocument 403 − アクセス権限がない時のエラー ErrorDocument
404 − ファイルがない時のエラー
ErrorDocument 500 − サーバーエラー(CGIやPHPの設定ミスなど)
|
【 7、ホームページアクセス時のデフォルトページを変更する 】 |
通常はホームページにアクセスすると、そのディレクトリにある index.htmlが表示されます。DirectoryIndex
を指定しておくと、このデフォルトのファイル(index.html)を違うファイルに変更することができます。
DirectoryIndex site1.html site2.html index.html
上記の記述だと、まず site1.html を呼び出そうとしますが、そのファイルが存在しなければ
site2.html を表示し、それも存在しなければ index.html を表示します。
|
→ Linux サーバ構築マニュアル トップへ戻る
|