htaccess生成の仕方@turbohtaccess
メニュー
  1. .htaccessファイルとは
  2. .htaccessファイル作成方法
  3. 特定ホストからのアクセスを制限する
  4. 携帯からのアクセスを制限
  5. 特定ホストのみ許可する
  6. 文字コード設定
  7. MIME設定
  8. エラーページの設定
  9. パスワード設定
コンテンツ

.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に記述する内容を作成することができます。

ID:    パスワード:

※こちらの暗号化パスワードは、以下のサイト様により生成させて頂いております。
.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もパスワードと同じく秘密に管理するとセキュリティが高まります。