メニュー
コンテンツ
.htaccessファイルとは.htaccessとは、Webサーバの動作をディレクトリ単位で制御するためのファイルで、Webサイトに適した様々な設定を管理者が自由に設定できるようにするためのものです。IPアドレスやドメイン単位でのアクセス制限、ユーザーの認証、SSIやCGIなどを実行するための命令、拡張子ごとにファイルタイプを指定するMIMEタイプの設定などを書き込むことができます。 .htaccessファイルで設定した内容は、それが存在するディレクトリ、サブディレクトリ、その中のファイル全てに影響を与えます。 .htaccessファイル作成方法メモ帳などのテキストエディアを開き、ファイル名を「htaccess.txt」として保存します。この「htaccess」ファイルを、FTPクライアントソフトでサーバにアップします。サイト全体に影響を及ぼしたい場合には、ファイルをルートディレクトリに転送します。 なお転送の際には、ASCIIモードで転送し、またファイルのパーミッションは「0644」にして保存します。 ルートディレクトリでなく、他のサブディレクトリ等に設置した場合は、そのディレクトリ以下の全てのファイルに影響を及ぼします。 特定ホストからのアクセスを制限するWebサイトを運営していると、スパム投稿など迷惑行為を受ける場合があります。ここでは、そういったホストからのアクセスを制限する場合に使用します。 (※その他のアクセスは許可します。) ホストはIPやドメインのことです。ホスト以外に、参照元のリファラや、アクセスソフト・ブラウザ等のユーザーエージェントによっても制限することができます。 特定ホストからのアクセスを制限 -------------------------------------------------------------- order allow,deny allow from all deny from xxxxx.com deny from yyyyy.net deny from 111.222.333.444 -------------------------------------------------------------- ※上記のxxxxx, yyyyy, 数字の部分には、制限を掛けたい実際のホスト・IPアドレスを記述して下さい。 特定リファラを制限 -------------------------------------------------------------- SetEnvIf Referer "http://xxxxx.net/" deny_1 SetEnvIf Referer "http://yyyyy.com/" deny_2 order allow,deny allow from all deny from env=deny_1 deny from env=deny_2 -------------------------------------------------------------- 特定ユーザーエージェントを制限 -------------------------------------------------------------- SetEnvIf User-Agent "ANONYMOUS" deny_1 SetEnvIf User-Agent "Firefox" deny_2 order allow,deny allow from all deny from env=deny_1 deny from env=deny_2 -------------------------------------------------------------- 携帯からのアクセスを制限こちらでは携帯電話からのアクセスを制限する際に利用するhtaccessファイルを簡単に生成することができるサービスを提供しています。1時間ごとに各ケータイキャリアのホストを自動取得し、アクセスブロックのhtaccessを自動生成しています。 利用される場合は、以下のボタンをクリックして下さい。ファイルをダウンロードできます。 ※対応キャリア ・ドコモ ・ソフトバンク ・au ・ウィルコム 特定ホストのみ許可する特定のホストのみアクセスを許可する場合に使用します。その他のアクセスは拒否します。ホストはIPやドメインのことです。ホスト以外に、参照元のリファラや、アクセスソフト・ブラウザ等のユーザーエージェントによっても許可することができます。 特定ホストのみ許可 -------------------------------------------------------------- order deny,allow deny from all allow from xxxxx.net allow from yyyyy.com -------------------------------------------------------------- 特定リファラのみ制限 -------------------------------------------------------------- SetEnvIf Referer "http://xxxxx.net/" allow_1 SetEnvIf Referer "http://yyyyy.com/" allow_2 order deny,allow deny from all allow from env=allow_1 allow from env=allow_2 -------------------------------------------------------------- 特定ユーザーエージェントのみ制限 -------------------------------------------------------------- SetEnvIf User-Agent "ANONYMOUS" allow_1 SetEnvIf User-Agent "Firefox" allow_2 order deny,allow deny from all allow from env=allow_1 allow from env=allow_2 -------------------------------------------------------------- 文字コード設定.htaccessを用いて、文字コード設定をすることで文字化け対策に役立てることが可能です。記述方法 -------------------------------------------------------------- ShiftJISの場合: AddType "text/html; charset=Shift_JIS" html JIS(ISO-2022-JP)の場合: AddType "text/html; charset=ISO-2022-JP" html EUC-JPの場合: AddType "text/html; charset=EUC-JP" html -------------------------------------------------------------- MIME設定MIMEとはMultipurpose Internet Mail Extensionの略で、拡張子によってサーバでファイルをどのタイプとして処理するか判別するために関連付けを行うためのものです。htmlなど、一般的な拡張子は指定しなくても問題ありませんが、あまり使われない拡張子の場合は、テキスト、画像、動画等どのファイルとして処理をしていいのか決められていないと正しい処理ができない場合があります。 例えばzipファイルでもテキストファイルとして処理されるとブラウザ上で文字が表示されてしまいます。 MIMEは拡張子によって記述が決められているのでそれをそのまま使用します。 記述方法 zipの場合: AddType application/octet-stream zip エラーページの設定認証を失敗した場合、ファイルが見つからない場合などのエラーページを、任意のページに設定することができます。エラーページの種類 401 Unauthorized: パスワード認証で正しく認証できない 403 Forbidden: .htaccessの制限によりアクセスを拒否された 404 Not Found: サーバ上にファイルが存在しない 500 Internal Server Error: CGIや.htaccessの設定ミスでサーバ処理ができない MIME設定の記述方法 ErrorDocument 401 err/401.html ErrorDocument 403 err/403.html ErrorDocument 404 err/404.html ErrorDocument 500 err/500.html ※上記のhtmlファイルは、任意のファイル名を設定して下さい。 エラーページ設定での注意 401エラーのページへのパスは相対指定でなければ動作しません。絶対パスでは動作しません。 その他のエラーのページは絶対指定でも動作します。 エラーページから読み出すファイル(画像、動画、cssファイル等)は、絶対パスでなければ正しく読み込めない場合があります。 パスワード設定特定のIDおよびパスワードを持っている場合にのみ、ユーザーに閲覧を許可する設定を行うことができます。.htaccessで設定するのとは別に、.htpasswdというファイルを作成することで、ログインが必要なページを作成することができます。 記述方法 -------------------------------------------------------------- AuthUserFile サイトのフルパス/制限をかけるディレクトリ/.htpasswd AuthGroupFile /dev/null AuthName "ユーザーIDとパスワードを入力する画面に表示する文字列" AuthType Basic require valid-user -------------------------------------------------------------- 記述の解説 AuthUserFile サイトのフルパスというのはhttp://から始まるものではなく、/から始まります。レンタルサーバなどと契約したときに届くメールに記述されています。 例えばロリポップの場合、 /home/sites/lolipop.jp/users/自分のドメイン/web となります。 AuthGroupFile /dev/null はこのままにします。 AuthName "と"の間に認証画面で表示したい文字を好きに決めます。 AuthType Basic および、require valid-user は、このままです。 .htpasswd用のパスワード作成 .htpasswdのファイルにはユーザーIDおよびパスワードを記述しますが、ここでのパスワードはの記述は認証時に入力するパスワードを暗号化したものを書かなければなりません。 つまり、IDとパスワードから暗号化したパスワードを作る必要があります。 次のフォームにIDとパスワードを入力して「暗号化パスワード生成」をクリックすると暗号化した.htpasswdに記述する内容を作成することができます。 ※こちらの暗号化パスワードは、以下のサイト様により生成させて頂いております。 .htaccess実践活用術 http://www.shtml.jp/htaccess/ .htpasswdでの設定記述例 testtest:teV57ZSHQEwns .htpasswdと.htaccessファイルのアップロード どちらもファイルも.から始まるので、先にファイル名を「htaccess.txt」「htpasswd.txt」としておきます。 サーバにアップしたあと.htaccessと.htpasswdというファイルに変更します。 パスワード認証の確認 .htaccessで設定した認証の必要なフォルダ以下のページにアクセスします。 IDとパスワードの入力を要求されるので、.htpasswdで設定したユーザーIDとパスワードを入力し、ページに入れることを確認します。 また誤ったIDを入力した場合に、401エラーのページに飛ばされるのを確認します。 パスワード認証を利用する注意点 認証の必要なページを見るとき以外でも、そのページで認証が必要なファイルを呼び出す場合も認証の画面が表示されます。 IDだけがわかってもパスワードがわかるわけではありませんが、IDがわかってしまえばパスワードのみ探せば認証できます。 IDもパスワードと同じく秘密に管理するとセキュリティが高まります。 |