htaceeseを使ってアクセス制限をしよう!エラーが出ても大丈夫!
2017/02/24
少しの間、検索にひっかかっては困るページをサーバーにアップしたので、該当のページを閲覧できないように、アクセス制限をしてみました。
特定のページを公開しないようにする設定で、ファイルは2つ。
忘れないようにメモ代わりにっていうのと、
私のように右も左も解からない、.htaccess超初心者さんへの参考に。
基本認証(BASIC認証・ベーシック認証)のやり方とつまづいたところをまとめます。
必要なファイルは2ファイル「.htaccess」と「.htpasswd」のみ。
スポンサーリンク
まず、アクセス制限をかけるファイル「.htaccess」を作成
これはエディターは必要ないので、テキストファイルでOK。
メモ帳をたちあげて、保存時に「.htaccess」で保存すればOK。
新規作成のメモ帳ならびに、テキストエディターに、以下の文言を記載
[PHP]
AuthType Basic
AuthName “好きな文言”
AuthUserFile /home/XXXX/lookingbook.xyz/YYYY/PPPP/.htpasswd
require valid-user
[/PHP]
解説
AuthType Basic
ベーシック認証なのでBasic
AuthName “好きな文言”
これはブラウザーにIDとパスワードを入れるポップアップに表示される文言で、
好きな言葉を入力してください。
しかし日本語だと、エラーになることもあるらしいので、私は英文で入れてます。
AuthUserFile /home/XXXX/lookingbook.xyz/YYYY/PPPP/.htpasswd
私のアドレスは伏せてますが、ポップアップにIDとパスワードいれますよね?
そのファイルを読みにいくアドレスです。
http://~から始まるアドレスではなく、
あなたのサーバーのルートディレクトリーを最初から、入力します。
ちなみに、FTPなどで出てくるこちらのアドレスを入れるのですが、
わたしは表示されているディレクトリーよりも上が表示されなくて(!)
上記の場所で一度アップ。
エラーメッセージ「500 Internal Server Error」となりました。
※しかし、何度か失敗しているときは、画像のディレクトリーでもたまに反映されていて、ポップアップは出てきました。
しかしポップアップにIDとパスワードを入れても、ページは開かず、、
なんでたまにポップアップがでてきたのかは、謎ですが、
キャッシュとかクッキーとかその辺の問題だったのかもしれません。
確認方法はサーバーのコントロールパネルで
ディレクトリーがあっていないのかもしれない!
と思い、サーバーのコントロールパネルまで見に行きました。
うっかり、自分のディレクトリーや、IDなど忘れてしまいますよね。
/home/ のあとはIDやら設定したなにかが表示されているはずですが、
忘れてしまうのですね・・・
どこかにメモ、もしくはそのときのメールは必ず残しておき、バックアップは保存しましょう。
しかし、/home/のあとがどう続くのかはサーバーによります。
WWWとか、種類があります。
なにー!FTPでみててもわからない!うまくいかない!という場合はサーバーをみるとよいです。
Xサーバーの場合はこちら
ログイン>サーバーパネル>.htaccess編集
で、ドメインを選ぶ人は選び、選択。
タブの.htaccess編集をクリックしたら、そこに、正式なルートディレクトリーがかいてあるので、「/home/XXXX/lookingbook.xyz/YYYY/PPPP/」の部分を、コピーしてファイルに記述。
「PPPP」の場所ですが、アクセス認証をした場所によりますので、
自分のと比べてください。
他のサーバーでも、元から.htaccessの機能があるものが多いと思いますが、
無料レンタルサーバーとなると、わかりませんので確認してみてください。
require valid-user
これはこのままで良いです。
終わったら、保存。
名前は「.htaccess」。「.(ドット)」から、ファイルが保存ができない!
と言う方は適宜なファイル名をつけ、サーバーにアップする前に、「.htaccess」にするとよいです。
つづいてパスワードの「.htpasswd」を作成
このファイルには、IDとパスワードのみを記述します。
パスワードは暗号化されたものを書くので、
こちらで、IDと暗号化されたパスワードを取得してください。
http://www.nishishi.com/scripts/htpasswd/
新規ファイル作成します。
中身にIDと暗号化されたパスワードを記入。
たとえばこんな風になります。
[PHP]
kinoshita:gSHohDP7kv1LQ
[/PHP]
個別にIDパスワードを変えたい場合は、
1つにつき、1行ずつ!
改行をわすれないようにしてください。
間を区切るのは「:」です。
そして、保存するファイル名は「.htpasswd」
これで2つのファイルの完成です!
このファイルを適宜の場所にサーバーにアップします!
これでアクセス制限がかかり、ポップアップにて、IDとパスワードを入力すると、観覧可能になる!
簡単ですね!
簡単!?ざけんな!
なんだ簡単じゃねーか~♪と余裕をぶっこいで、いざURL入力して、
該当のページやサイトをみにいくとなんと・・・
エラーメッセージ「500 Internal Server Error」
とでてしまう場合
- サーバー側でアクセス制限の設定ができていない場合
- ファイルの記述が間違っている場合
がみうけられます。
私はファイルの記述が間違っているようでした。
- 全角の空白はないであろうか?
- 文字はあっているか?
- IDとパスワードはあっているか?
- ディレクトリーはあっているか?
ということを気にしてみましょう。
1文字違っても正常に処理されません。
ちなみに
.htaccessの、
AuthName “好きな文言”
ですが、「””」がなくてもいけました。
最初、「”好きな文言”」と書いていて、試しに「好きな文言」でアップしてみましたが、処理されました。
が、本当はあったほうがいいと思うので、記述忘れないのないように。
ルートディレクトリーはサーバーパネルにあったものでOKでした。
文字も、既存の別サイトのものとスペルミスはなく、(そもそもコピペなので、ミスがあるともおもえないけど)
ということはIDパスワード!?
となったので、再度暗号化したパスワードを取得しなおしました。
そして再度アップしたのち、無事に処理が行われているようでした。
このアクセス制限のIDとパスワードは、
- 認証はブラウザを終了するまで有効
- IDやパスワードはブラウザに記憶できる
- アクセス制限は検索エンジンのクローラーもブロックする
とのことなので、一度うまく処理されたあと、何が原因だったか検証する場合はお使いのブラウザーを一時終了したほうがいいですね。
よく使うサイトやページでしたらブラウザーに記憶すると便利ですが、
セキュリティーの面で自信がない方は乱用しないほうがいいかもしれません。
クッキーはいまや大活躍しているので、使わない手はないですが、
ブラウザーはログインすれば場所を選ばない分、外で使うときにはログアウト必須ですね!
漫画喫茶など、複数人が使用する場合はログアウト癖があったほうがいいかと思います。
アクセス制限の作業する人はあまり職場以外で他人のパソコンを使うということはかんがえにくいですがな・・・
「.htaccess」と「.htpasswd」を第三者に見られないようにする方法
ちょっとばかしの応用になりますが、簡単です。
ブラウザで中身が見える場合
ウェブサーバの設定が記述された「.htaccess」ファイルや、認証用のIDとパスワードを記述した「.htpasswd」ファイルは、簡単には見られない方が良いファイルです。
サーバによっては、これらのファイルは直接URLを指定してアクセスしても、最初から表示されない設定になっている場合もありますが
もし、そう設定されていないようであれば、見えないように設定しておきましょう。
実際自分がどうなのか?クライアントがどうなのか?わからない場合でも、だれにでもみえてしまうのはよくないので、追加で以下を記述したほうが無難かもしれません。
「.htaccess」と「.htpasswd」の2ファイルを、ウェブ上では閲覧できないようにするには、「.htaccess」ファイルに以下の3行を追記します。
[PHP]
deny from all
[/PHP]
これだけで大丈夫です。
といったところで、どうでしたでしょうか?
今回超初歩なものですが、初歩からつまづくのです。
IDパスワードを再取得
ソースコードはあっているか?
使っているサーバーは.htaccessが使えるようになっているのか?
を目に留めてみてください。
そして、右も左もわからないとき!
お役に立てたら・・・^^と思います。
スポンサーリンク