.htaccessの使い方
.htaccessとは
Webサーバで使用できる、Webサーバの動作や各種設定行ったり、ディレクトリ単位でアクセス制限・パスワード制限を行うことができるファイルです。
.htaccessファイルで設定した内容は.htaccessファイルがあるディレクトリと、そのサブディレクトリに効果があります。
記述を誤まりますと「Internal Server Error」となり、ホームページへのアクセスができなくなりますので、使用に際しては十分ご注意の上ご利用ください。ここでは、よく使われる方法をいくつかご紹介します。
ご使用の前に
.htaccessファイルを記述する際、説明上「サーバ上の絶対パス」という表現が出てきます。これはサーバ上のファイルシステムにおけるフルパスであり、FTPのファイルパスやURL上のパスとはいずれも異なります。基本的にFTPでホームディレクトリにログオンした際、サーバ上の絶対パスで表現すると「/var/www/vhosts/ドメイン名/httpdocs/」となります。
※SSLの場合は /var/www/vhosts/ドメイン名/httpsdocs/ となります。
◇パスワードでアクセス制御する
特定のディレクトリ以下にアクセスすると、パスワードとアカウントをダイアログ表示します。
例:ユーザ名を「taro」とし、パスワード制御対象ディレクトリは「httpdocs/dir」としてご説明します。
- パスワードファイルを作成する
まず、パスワードを記述したファイルを準備します。
- スタート→すべてのプログラム→アクセサリから「メモ帳」を起動します。
- 「ユーザ名:」と記述します。
【例】taro: - パスワードについては暗号化された状態で保存される必要があるため、次のアドレスにアクセスし、設定したいパスワードを暗号化します。
http://www.rescue.ne.jp/cgi/htpasswd/makepwd-des/
※入力フォームに、6文字以上(任意:半角英数)のパスワードを入力、[暗号化]ボタンをクリックします。
- 暗号化(DES)されたパスワードをコピーして、先ほど記述した「ユーザ名:」に続けて貼り付けます。
【例】 taro:vgRnyjvyEiy/E ←暗号化したパスワード(赤字部分) - ファイルを保存します。WINDOWSマシンでは、「.」から始まるファイル名は使用できないため、ここではファイル名を一時的に「pwd.txt」として保存します。
- スタート→すべてのプログラム→アクセサリから「メモ帳」を起動します。
- 「.htaccess」ファイルを作成する
- スタート→すべてのプログラム→アクセサリ→メモ帳から、先ほどの「pass.txt」とは別に、新規ファイルで「メモ帳」を起動します。
- 次のように入力します。
AuthUserFile /var/www/vhosts/ドメイン名/httpdocs/dir/.htpasswd
AuthGroupFile /dev/null
AuthName "Type Your Password"
AuthType Basic
require valid-user
※緑字部分に、パスワードファイルの場所をサーバ上の絶対パスで記入してください。
.htpasswd、.htaccessファイルを外部から見えないようにするには
ファイルの一番最後の行に次のふたつのうち、どちらかを記述します。
<Files ~ "^.(htpasswd|htaccess)$">
deny from all
</Files>
または
AddHandler cgi-script htaccess - ファイルを保存します。先ほどと同じく、こちらでもファイル名を一時的に「htaccess.txt」として保存します。
- WWWサーバに設置する
- WWWサーバ上の「httpdocs/dir」ディレクトリに、作成した2つのファイルをFTPなどでアップロードします。
- アップが完了した後、ファイル名を変更します。
「pwd.txt」→「.htpasswd」
「htaccess.txt」→「.htaccess」 - 動作確認をする
- ブラウザで上記ファイルをアップしたディレクトリ、またはそのサブディレクトリのファイルにアクセスします。
- 下記のようなダイアログボックスが表示されます。(ブラウザによって表示されるダイアログは異なります。)
- 先ほど設定した「ユーザ名」と「パスワード」を入力して「OK」ボタンをクリックします。その後の画面が正常に表示されれば完了です。
◇特定のホストからのアクセスを「拒否」する
特定のホストからのアクセスを拒否するには、以下を実行します。
.htaccess ファイル内に下記の通り記述し、制限したいディレクトリへ設置します。
Order allow,deny
allow from all
deny from.xxxx.co.jp
↑「.xxxx.co.jp」からのアクセスを拒否します。
◇特定のホストからのアクセスのみ「許可」する
特定のホストからのアクセスのみを許可し、それ以外はすべて拒否するには、以下を実行します。
.htaccess ファイル内に下記の通り記述し、制限したいディレクトリへ設置します。
Order deny,allow
deny from all
allow from.xxxx.co.jp
↑「.xxxx.co.jp」からのアクセスのみを許可します。
◇デフォルト表示する「ファイル名」を変更する
URLを直接入力する際など、ファイル名(xxxx.html、xxxx.htmなど)まで指定せず(例:http://www.xxxx.com/taro/ 等)にアクセスすると、そのディレクトリの中にある「index ファイル(index.html、index.htmなど)」を読込み表示します。それを「top.html」など、希望のファイル名に変更するには、以下を実行します。
.htaccess ファイル内に下記の通り記述します。
DirectoryIndex top.html profile.html 001.html
↑ファイルは左から順に検索されていきます。優先順位の高いものから記述してください。
※ファイル名の登録数に限りはありません。