home > help/faq > 設定ガイド > .htaccessの設定方法
|
|
|
|
☆ .htaccessの設置概要 |
|
.htaccessを使用すると、アクセス制限・直リンク禁止・リダイレクト(ページのジャンプ)・エラーページのカスタマイズ・.html以外のファイルをトップページにする・SSIを.html上で動かすなど、様々な機能が使えるようになります。
しかし、.htaccessは便利な反面、設定を誤るとページが表示できなくなったり、動作がおかしくなったりする危険性も含んでいます。 設定・設置には充分お気を付け下さい。
.htaccessは有料サービスでのみご利用いただけます。 無料HPスペース 20MBではご利用いただけません。
・ FTPによる転送はテキスト(アスキー)モードで行って下さい。
・ 設置場所にご注意下さい。 .haccessは設置したディレクトリ(フォルダ)以下の全てのファイルに影響します。
・ 設置後は必ず正常稼動を確認してから運用して下さい。
・ Basic認証などで多数のIDとパスワードを管理するのはご遠慮下さい。 サーバーに過負荷がかかります。
|
|
|
☆ アクセス制御の方法 |
|
☆ 特定のホスト・IPアドレスからの接続を拒否する |
|
1. 設定ファイル(.htaccess)を作成します。
Order allow,deny
allow from all
deny from cotonet.com
deny from 123.45.67.890
deny from 098.76
deny from .jp |
「arrow」は「許可します」の意味です。 「deny」は逆に「否定します」の意味です。
上の例で1行目と2行目は「接続拒否を設定します。 とりあえず、全ての接続を許可しますが・・・」となります。
3行目以降(deny from)に接続を許可しないホストやアドレスを列挙します。
「deny from」はいくつでも設定することができます。
上の例の場合、「cotonet.comドメインを持つ接続先からの接続」・「123.45.67.890のIPアドレスからの接続」・「098.76で始まるIPアドレスからの接続」・「jpドメインを持つ接続先からの接続」を拒否したことになります。
作成中の設定ファイルの名前は何でもかまいません。
2. ファイルを転送します。
設定したファイルをFTPで転送します。
このとき、ファイル名を「.htaccess」に変更してから送信するか、送信後FTPでファイル名を「.htaccess」に変更します。
転送場所はアクセス制限をかけたいファイルのあるディレクトリ(フォルダ)です。 そのディレクトリ以下は全て制限がかけられます。
転送後、動作確認を行って下さい。
|
|
|
|
|
☆ 特定のホスト・IPアドレスからの接続を許可する |
|
1. 設定ファイル(.htaccess)を作成します。
Order deny,allow
deny from all
allow from cotonet.com
allow from 123.45.67.890
allow from 098.76
allow from .jp |
「arrow」は「許可します」の意味です。 「deny」は逆に「否定します」の意味です。
上の例で1行目と2行目は「接続許可を設定します。 とりあえず、全ての接続を拒否しますが・・・」となります。
3行目以降(arrow from)に接続を許可するホストやアドレスを列挙します。
「arrow from」はいくつでも設定することができます。
上の例の場合、「cotonet.comドメインを持つ接続先からの接続」・「123.45.67.890のIPアドレスからの接続」・「098.76で始まるIPアドレスからの接続」・「jpドメインを持つ接続先からの接続」だけを許可したことになります。
作成中の設定ファイルの名前は何でもかまいません。
2. ファイルを転送します。
設定したファイルをFTPで転送します。
このとき、ファイル名を「.htaccess」に変更してから送信するか、送信後FTPでファイル名を「.htaccess」に変更します。
転送場所はアクセス制限をかけたいファイルのあるディレクトリ(フォルダ)です。 そのディレクトリ以下は全て制限がかけられます。
転送後、動作確認を行って下さい。
|
|
|
|
|
☆ パスワード制限をかける |
|
※注 「ことねっと どっと こむ」では「Telnet」は利用できません。 暗号化されたパスワードはあらかじめ用意して下さい。
1. 設定ファイル「.htaccess」を作成します。
AuthUserFile /var/www/html/home/kotoko/public_html/srt/.htpasswd
AuthGroupFile /dev/null
AuthName "Secret Access Pass"
AuthType Basic
Require valid-user |
1行目には「IDとパスワードが格納されているファイル(.htpasswd)」の場所を「絶対パス」で記入します。
上の例では「アカウント名kotokoさんのsrtディレクトリに管理ファイルがある」と言うことです。
2行目の「AuthGroupFile」はユーザーをグループ単位で管理する場合に用いる管理ファイルの場所を指定するときに使います。 「/dev/null」は「存在しない」を意味します。
3行目ではパスワード入力画面(ダイアログ)に表示する文章を指定します。 必ず「"」でくくって下さい。 日本語は文字化けする恐れがありますので、半角英数字を推奨します。
4行目の「AuthType」は認証の形式を表します。 例の場合は「Basic認証」を指定しています。 認証形式には実は「Basic」と「Digest」の2種類があるのですが、「Digest」はセキュリティーは高い反面、未対応のブラウザが多いのでお薦めしません。
5行目は「.htpasswdに設定したIDとパスワードの組み合わせが正しければ、誰でも閲覧できます。」と言う意味になっています。 もし、「Require
user kotoko」とすれば、.htpasswdに他のIDとパスワードが書かれていてもkotokoさん以外は閲覧できなくなります。
2. 設定ファイル「.htpasswd」を作成します。
kotoko:ko.uLLqcrZmWA
ichigo:icK7PaDBAzbvo
nekoneko:neUJz0SnVuLXU |
「ID:暗号化されたパスワード」の書式でIDとパスワードが列挙されます。
当然ですが、ここに登録された組み合わせのIDとパスワードを知っていなければ、そのディレクトリ以下にあるファイルを閲覧することができません。
上の例のパスワードは実際に有効な文字列を「UNIXのパスワード暗号化」してくれるPHP(CGIでも可能です)で暗号化したものです。 ご自身でプログラムすることも可能ですし、インターネット上に暗号化してくれるCGIやPHPを公開しておられるサイトもあります。 ご活用下さい。
UNIXの暗号化は非常に解読が難しく、容易には解読できないとされていますが、もし、「ことねっと どっと こむ」にご登録中のパスワードが外部に知られれば、ユーザーアカウントとパスワードを使って、FTPで「.htpasswd」を盗み出すことが可能になります。
難しいとはいえ、解読できない暗号は存在しません。 大切な会員様・ご友人様方のためにも、「ことねっと」のパスワードは他者に知られないように、また、予測し難いパスワードになさるようにお薦めします。
参考:
「.htpasswd」の名称は、実は何でもかまいません。(慣用的に「.htpasswd」が良く使われています。)
もし名称を変更される場合は「.htaccess」の1行目に指定するファイル名の変更を忘れないようにして下さい。
3. ファイルを転送します。
設定したファイルをFTPで転送します。
このとき、「.htaccess」はパスワード制限をかけたいディレクトリ(フォルダ)に、「.htpasswd」は「.htaccess」で指定したディレクトリに間違いなくテキスト(アスキー)モードで転送して下さい。
転送後、動作確認を行って下さい。
???何故「Basic認証などで多数のIDとパスワードを管理するのはご遠慮下さい。」なの???
お客様が会員様やご友人の皆様にIDとパスワードの入力を要求するのが1回だったとしましょう。
ログインして来た方はそれで作業が終わりです。
ところが、サーバーは大忙しになっています。 その方がディレクトリ内を移動されたり画像を閲覧したりされるたびに、サーバーは「その接続は妥当か?」を常にチェックしています。 パソコンに詳しい方なら「リクエストを受けるたびにAuthorizationHeaderをデコードして照合している」と申し上げればわかっていただけると思います。
あるサーバーに収容された300名の方が全員「.htaccess」で十数名の会員様・お友達の方々にBasic認証を要するページを提供されたとしても、それだけならさして問題ではありません。 ところが、数名の方でも数百・数千単位の人数に、また大きなディレクトリに、認証が必要とされるページを設置されたとなると、サーバー負荷は相当なものになります。
こういった場合は、通常のフォームにてIDとパスワードの認証を行っていただき、必要に応じてSSLを導入していただけますようにお願いしております。
|
|
|
☆ 便利な.htaccess利用法 |
|
☆ indexファイルを変更する |
|
「ことねっと どっと こむ」では「index.html」の他、「index.shtml」・「index.hdml」・「index.chtml」・「index.xhtml」をindexページとして認識するようになっています。 逆に言えば「index.htm」や「index.cgi」はindexページとして認識されません。 .htaccessでは、これらをindexページとして認識できるように設定することができます。
1. 設定ファイル(.htaccess)を作成します。
DirectoryIndex index.html index.htm index.cgi index.php |
「DirectoryIndex」に続き、左から順に優先度の高い順番にindexファイルとして認識させたいファイル名を半角スペースで区切りながら列挙して行きます。
作成中の設定ファイルの名前は何でもかまいません。
2. ファイルを転送します。
設定したファイルをFTPで転送します。
このとき、ファイル名を「.htaccess」に変更してから送信するか、送信後FTPでファイル名を「.htaccess」に変更します。
転送場所はindexファイルとして認識させたいファイルのあるディレクトリ(フォルダ)です。 通常はトップディレクトリ(public_html内)に設置します。
転送後、動作確認を行って下さい。
|
|
|
|
|
☆ index.htmlのないディレクトリでもファイル一覧を表示させない |
|
通常、index.htmlを設置していないディレクトリ(フォルダ)にアクセスすると、ファイル一覧が表示されてしまいます。
例えば、「http://kotonet.com/」にアクセスすると、実際には「http://kotonet.com/index.html」が表示されます。 もし、「http://kotonet.com」ディレクトリ(フォルダ)にindex.htmlや.htaccessで指定した(「☆ indexファイルを変更する」参照)ファイルがなかったら、その中にあるフォルダやファイルが一覧となって表示されます。
(※注 「ことねっとサーバー」ではディレクトリ・インデックス一覧は表示されない設定となっています)
これを防ぐには、各ディレクトリにindex.htmlを設置するか、.htaccessを使って別のページを表示させる方法があります。
1. indexページの代わりに表示させるページを作成します。
内容はどんなものでも構いません。 普通の.htmlで作成します。
例えば、「正確にファイル名まで指定して下さいね」のような内容が一般的でしょう。
この例では、このファイルに「notfound.html」と言う名前をつけて保存したとします。
2. 設定ファイル(.htaccess)を作成します。
DirectoryIndex index.html notfound.html |
上にある「☆ indexファイルを変更する」と同じように「DirectoryIndex」を使います。
「DirectoryIndex」は左側のファイルを優先して表示しようとし、なければ次(右)、それもなければ次(右)・・・と表示するファイルを探す特性があります。 これを利用して、「index.htmlがなければnotfound.htmlを表示する」としているのです。
作成中の設定ファイルの名前は何でもかまいません。
3. ファイルを転送します。
設定したファイルをFTPで転送します。
このとき、ファイル名を「.htaccess」に変更してから送信するか、送信後FTPでファイル名を「.htaccess」に変更します。
転送場所は通常はトップディレクトリ(public_html内)です。
転送後、動作確認を行って下さい。
参考:
サーバーの仕様により「Options」の指定はできません。 |
|
|
|
|
☆ エラーページをカスタマイズする |
|
サーバーやブラウザが表示するエラーページが味気ないと思っていらっしゃる方は多いと思います。 しかし、.htaccessを使って表示されるエラーを変更することができます。
ここでは例として「404 ERROR」をカスタマイズする方法をご紹介します。
1. オリジナルのエラーページを作成します。
普通の.htmlで作成します。404エラーをカスタマイズする場合、
HTTP 404 ERROR
Not Found! The requested URL was not found on this server.
のような内容が一般的でしょう。
この例では、このファイルに「notfound.html」と言う名前をつけて保存したとします。
2. 設定ファイル(.htaccess)を作成します。
ErrorDocument 404 http://kotoko.kotonet.com/errors/notfound.html |
「ErrorDocumennt 404 半角スペース 表示するURL」という書式になります。
上の例の場合、404エラーが発生したら、「errors」ディレクトリにある「notfound.html」を表示します。
作成中の設定ファイルの名前は何でもかまいません。
3. ファイルを転送します。
設定した.htaccessファイルをFTPで転送します。
このとき、ファイル名を「.htaccess」に変更してから送信するか、送信後FTPでファイル名を「.htaccess」に変更します。
転送場所は通常はトップディレクトリ(public_html内)です。
オリジナルエラーページは.htaccessで指定した場所に送信して下さい。
転送後、動作確認を行って下さい。
参考:
「ErrorDocument」以降の数字を403にすると「Forbidden」、500にすると「Internel
Server Error」をカスタマイズすることができます。 その他いろいろなエラーがありますが、代表的なものを「トラブルシューティング」でご紹介しております。 ご参考になさって下さい。
稀に凝ったエラーページを作っている方をお見かけしますが、作為的に500エラーを発生させるような行為はご遠慮下さい。
|
|