ホームページ~.htaccess
.htaccessとは
アクセス制限を行ったり、初期状態では設定されていないMIMEメディアタイプを追加する時に使用します。
.htaccessとは
.htaccess は、WWWサーバの動作をカスタマイズしたい時に使用する設定ファイルです。
.htaccess の実体は決められた書式に従って書かれたテキストファイルです。ファイルはテキストエディタ(Windowsのメモ帳やMac OSのSimpleTextなど)で作成することができます。
書式に従って設定する内容を記述し、作成したテキストファイルに「.htaccess」というファイル名を付けてサーバに転送すると .htaccess が置かれているディレクトリと、そのサブディレクトリ内にあるすべてのファイルに対して記述した設定が適用されます。
例えば、/home/abc ディレクトリに .htaccess ファイルを置いた場合、設定が適用されるディレクトリは緑色の部分です。黒色のディレクトリには設定が適用されません。
/(ルートディレクトリ) | ||||||||
| | ||||||||
+- | home | |||||||
| | | | |||||||
| | +- | abc | ||||||
| | | | |||||||
| | +- | def | ||||||
| | | | | | ||||||
| | | | +- | ghi | |||||
| | | | |||||||
| | +- | jkl | ||||||
| | ||||||||
+- | cgi-bin | |||||||
| | | | |||||||
| | +- | abc | ||||||
| | | | |||||||
| | +- | def | ||||||
| | ||||||||
+- | log | |||||||
| | ||||||||
+- | Maildir | |||||||
| | ||||||||
+- | new | |||||||
| | ||||||||
+- | cur | |||||||
| | ||||||||
+- | tmp |
Apache のコア機能として用意されているディレクティブ、およびモジュールによって追加されているディレクティブのうち、AllowOverrideディレクティブで許可されているディレクティブを .htaccess の中に記述してご利用いただくことができます。Apache について詳しいお客様は、以下の情報と Apache の解説書・インターネットホームページ等を参考にしてご利用ください。
TikiTikiホスティングサービスの Apache には、以下のモジュールが組み込まれております。
mod_access mod_actions mod_alias mod_asis mod_auth
mod_autoindex mod_cgi mod_dir mod_env mod_imap
mod_include mod_log_config mod_mime mod_negotiation
mod_setenvif mod_status mod_userdir
また、使用が許可(AllowOverrideディレクティブで許可)されている項目は以下の3項目です。
AuthConfig Limit Fileinfo
記述方法がご不明な場合は、このページに .htaccess の具体的な使用例を記載しておりますのでそちらを参考に設定を行ってください。
Windowsをご利用の場合の注意点
お使いのコンピュータの OS が Windows の場合、デフォルトの設定では拡張子が見えないようになっています。このため、テキストファイルを作成した際に「.txt」という拡張子が付けられてしまい、ファイル名が「htaccess.txt」などになってしまう場合があります。
htaccess はファイル名が正確に「.htaccess」になっていなければ動作しませんので、拡張子が自動的に付いてしまう場合は以下のどちらかの方法で対処してください。
- ファイル名を「.htaccess」に変更してからサーバに転送する
- 転送を行ってからFTPソフトでサーバ上に置いたファイルのファイル名を「.htaccess」に変更する
パスワード認証によるアクセス制限
正しいIDとパスワードを入力しないとページの内容をブラウズできないようにする方法です。特定の人だけにページを見せたい場合に有効です。
認証をかけたページにアクセスすると下記のようなダイアログボックスが表示されます。(ブラウザによって若干表示が異なります。)
正しいIDとパスワードを入力すればページが表示されますが、間違っている場合再度入力画面が表示されます。3回続けて間違えるとエラーを表示してアクセスを拒否します。
Windows Internet Explorer 5.5 SP1使用時に表示されるダイアログボックス
設定手順は以下の通りです。
-
パスワード認証によるアクセス制限の場合、.htaccess とは別にパスワードファイルを作成する必要があります。管理ツールの Admin Manager にログインして、ホームページ - アクセス制限用パスワードの作成 を選択してください。
Admin Manager のログイン方法がご不明な場合は オンラインマニュアル - [管理ツール] Admin Manager のページをご覧ください。
- 画面の説明に従い、認証に使うIDとパスワードを入力して「作成」ボタンをクリックしてください。
-
IDと暗号化されたパスワードの内容が表示されます。 例えば tiki というIDを指定した場合、以下のような内容が作成されます。
tiki:oULio70lDgMtg
この内容をコピーして、テキストエディタの編集画面にペーストしてください。
2.~3.の作業を繰り返し、複数のIDとパスワードを登録することもできます。その場合、テキストエディタの編集画面で1行につき1組のIDとパスワードを記述してください。例えば、 tiki1 ・ tiki2 ・ tiki3 の3つのIDを登録する場合は以下のように記述します。
tiki1:whCIhSEbh9V4I
tiki2:OXYlUEnR7jrik
tiki3:8eOtEa3nUn5xM -
作成したテキストファイルに名前を付け保存してください。パスワードファイルのファイル名に特に制限はありませんが、ここでは .htpasswd というファイル名を付けることにします。
ここまででパスワードファイルの作成は完了です。
続けて、.htaccess の作成を行います。 -
テキストエディタで新規にファイルを作成し、以下の内容を記述してください。
AuthUserFile ~/(IPアドレス)/(設置ディレクトリ)/.htpasswd
AuthName (メッセージ)
AuthType Basic
require user (ID)(IPアドレス)の部分にはお客様のTikiTikiホスティングサービスのサーバのIPアドレスを記述してください。
(設置ディレクトリ)の部分にはパスワードファイルを置くディレクトリを記述してください。 通常、アクセス制限をかけるディレクトリと同じディレクトリを指定すれば問題ありません。
(メッセージ)の部分にはIDとパスワードを入力するダイアログボックスに表示させるメッセージを記述してください。メッセージにスペースが含まれない場合はそのままメッセージを記述しても問題ありませんが、スペースを含むメッセージを記述する場合は文字列を「 " 」(ダブルクォーテーション)で括ってください。
スペースを含むメッセージを「 " 」で括らずに記述すると、エラーになってしまい正常に動作しません。(ID)の行にはパスワードファイルを作成する際に指定したIDを記述してください。 例えば tiki というIDを指定した場合は以下のように記述します。
require user tiki
パスワードファイルに複数のIDを記述した場合は以下のように半角スペースで区切ってIDを記述してください。tiki1 ・ tiki2 ・ tiki3 の3つのIDを記述した場合は以下のように記述します。
require user tiki1 tiki2 tiki3
また、パスワードファイルに書かれているすべてのIDをまとめて指定する場合は以下のように記述します。
require valid-user
例えば、IPアドレスが 123.123.123.123 で、tiki というIDを記述した .htpasswd というファイル名のパスワードファイルを /home/member ディレクトリに置く場合は以下のように記述します。
AuthUserFile ~/123.123.123.123/home/member/.htpasswd
AuthName "Input ID and Password."
AuthType Basic
require user tiki -
作成したテキストファイルに「.htaccess」という名前を付け、保存してください。
以上で .htaccess の作成は完了です。 -
サーバにFTP接続して .htaccess と .htpasswd を設置ディレクトリに転送してください。 (上記の例の場合は /home/member ディレクトリに転送します。)
転送した .htaccess と「.htpasswd」のパーミッションはどちらも 604(rw----r--) に設定してください。パーミッションの設定方法がご不明な場合は オンラインマニュアル - [ファイル転送] パーミッション のページをご覧ください
-
ブラウザで対象ディレクトリ内のコンテンツ(上記の例の場合 http://(ドメイン名またはIPアドレス)/member/ )を開いてください。
正しく設定が行えていればダイアログボックスが表示されますので、設定したIDとパスワードを入力してページが表示されることを確認してください。
アクセス元によるアクセス制限
アクセス元のコンピュータやネットワークによってアクセスを制限する方法です。ページを特定のコンピュータ、ネットワークだけに見せたい、または見せたくない場合に有効です。
host1.tiki.ne.jp(IPアドレス 123.123.123.123)からのアクセスを許可し、
host2.abcde.co.jp(IPアドレス 234.234.234.234)からのアクセスを拒否する場合のイメージ
具体的には、以下のどちらかの条件でアクセスを制限します。
- 「ある特定のホスト名(IPアドレス)だけを拒否し、その他はすべて許可する。」
- 「ある特定のホスト名(IPアドレス)だけを許可し、その他はすべて拒否する。」
設定手順は以下の通りです。
-
テキストエディタで新規にファイルを作成し、アクセス制限の内容を記述してください。
「ある特定のホスト名(IPアドレス)だけを拒否し、その他はすべて許可する。」という条件にする場合は以下の内容を記述します。order allow,deny
allow from all
deny from (拒否するホスト名)「ある特定のホームページだけを許可し、その他のホームページはすべて拒否する。」という条件にする場合は以下のように記述します。
order deny,allow
deny from all
allow from (許可するホスト名)(拒否するホスト名)および(許可するホスト名)の部分は対象のホスト名を記述します。
例えば(拒否するホスト名)にドメイン名 host2.abcde.co.jp を指定する場合は以下のように記述します。deny from host2.abcde.co.jp
(許可するホスト名)にIPアドレス 123.123.123.123 を指定する場合は以下のように記述します。
allow from 123.123.123.123
特定の1つのホスト名やIPアドレスではなく、一定の範囲を指定することもできます。
例えば(拒否するホスト名)に先頭が 234.234 で始まるすべてのIPアドレス( 234.234.234.234 や 234.234.111.222 など)を指定する場合は以下のように記述します。deny from 234.234
(許可するホスト名)に tiki.ne.jp ドメインを使用するすべてのホスト名( abc.tiki.ne.jp や 123.def.tiki.ne.jp など)を指定する場合は以下のように記述します。
allow from .tiki.ne.jp
(許可するホスト名)や(拒否するホスト名)は複数指定することもできます。例えば 123.123.123.123 のIPアドレスと tiki.ne.jp を使用するすべてのホスト名からのアクセスだけを拒否し、その他はすべて許可する場合は以下の内容の .htaccess を作成してください。
order allow,deny
allow from all
deny from 123.123.123.123
deny from .tiki.ne.jp -
作成したテキストファイルに「.htaccess」という名前を付け、保存してください。
以上で .htaccess の作成は完了です。 -
サーバにFTP接続して .htaccess をアクセス制限をかけたいディレクトリに転送してください。転送した .htaccess のパーミッションは 604(rw----r--) に設定してください。
パーミッションの設定方法がご不明な場合は オンラインマニュアル - [ファイル転送] パーミッション のページをご覧ください。
-
アクセスを制限したコンピュータ、ネットワークからブラウザで .htaccess を設置したディレクトリ内のコンテンツを開いてください。
正しく設定が行えていれば Forbidden というエラーが表示されます。
MIMEメディアタイプの追加
初期状態ではホームページのデータとして認識されないタイプのファイルを認識させる方法です。
ホームページ上でデータファイルを使用するためには、そのデータファイルについてのMIMEメディアタイプをサーバに設定しておく必要があります。HTML文書やGIF形式の画像ファイルなど、一般的によくホームページで使用されるデータファイルのMIMEメディアタイプはあらかじめサーバに設定されていますが、MIMEメディアタイプが設定されていないファイルをホームページ上でご利用いただく場合は、.htaccess にMIMEメディアタイプの追加設定を記述してサーバに転送してください。
MIMEメディアタイプを追加する場合は、 .htaccess を以下のように記述してください。
AddType (MIMEメディアタイプ) (拡張子)
(MIMEメディアタイプ)の部分には追加するファイルのMIMEメディアタイプを記述します。
(拡張子)の部分には追加するファイルの拡張子を記述します。例えば、Macromedia FreeHand というアプリケーションソフトで作成した、拡張子が「fh4」になっているデータのMIMEメディアタイプを追加する場合は .htaccess を以下のように記述します。
AddType image/x-freehand fh4
この .htaccess を /home/freehand に転送すると、/home/freehand とその中のディレクトリにある拡張子が「fh4」のファイルが FreeHand のデータとして認識されます。
また、SSIファイルの拡張子に標準の「shtml」だけではなく「html」も使用したい場合は、 .htaccess を以下のどちらかの形で記述します。
-
記述方法1
AddType text/html .html
AddHandler server-parsed .html -
記述方法2
AddType text/x-server-parsed-html .html
この .htaccess を /home に転送すると、/home 以下のディレクトリにある、拡張子が「html」のHTMLファイルでSSIがご利用いただけるようになります。転送した .htaccess のパーミッションは必ず 604(rw----r--) に設定してください。
なお、初期状態でサーバに設定されているMIMEメディアタイプの一覧は オンラインマニュアル - [ホームページ] .htaccess - MIMEメディアタイプ のページをご覧ください。
/cgi-binディレクトリへのHTML・画像ファイル等の設置
/cgi-bin ディレクトリにHTMLファイルや画像ファイルなどを置き、そのファイルをブラウザから直接参照できるようにする方法です。
TikiTikiホスティングサービスのサーバは、初期状態ではCGIの実行ファイルとHTMLファイル・画像ファイルなどその他のデータファイルを それぞれ別々のディレクトリに置いていただくようになっていますが、以下の書式に従って作成した .htaccess を/cgi-binディレクトリに設置すると /cgi-binディレクトリ内にHTMLファイルや画像ファイルを置き、そのファイルをブラウザから表示させることができるようになります。
AddHandler server-parsed (拡張子)
例えば、拡張子が「.html」および「.htm」のHTMLファイルと、拡張子が「.gif」および「.jpg」の画像ファイルを/cgi-binディレクトリ内に 置く場合の .htaccess の内容は以下のようになります。
AddHandler server-parsed .html .htm .gif .jpg
指定した拡張子のファイルはCGIを通してではなく直接参照することができるようになりますので、内容をそのまま公開したくないファイルがある場合は十分ご注意いただいた上でご利用ください。
弊社では上記の内容の .htaccess をご利用になったことにより万一お客様に何らかの損害が生じた場合でも一切の責任を負いかねますので、あらかじめご了承ください。セキュリティを重視される場合は、上記の記述はご利用にならないことをおすすめします。
また、上記の .htaccess を使用しても/cgi-binディレクトリ内に置いたHTMLファイルの中でSSIを使用することはできません。SSIを記述したHTMLファイルは/homeディレクトリ内に置いてご利用ください。
アドレスの転送
あるファイル(URI)にアクセスした時に、自動的に他のアドレス(URL)にアクセスさせる方法です。
http://(ドメイン名)/ というアドレスをトップページとしてご利用になる場合、トップページのファイル名は /home ディレクトリに index.html・index.htm・index.shtml しか使用できませんので、通常はHDMLファイルやCGIをトップページにすることができません。
しかし、以下の内容の .htaccess を/homeディレクトリに設置すると http://(ドメイン名)/ にアクセスが行われた時に自動的に他のアドレスにアクセスが行われますので、HDMLファイルやCGIなど、任意のファイルをトップページとして表示させることができます。
Redirect アクセスされるファイル(URI) 転送先のアドレス(URL)
例えば、ドメイン名が tiki.ne.jp の場合に、トップページとして /cgi-bin ディレクトリ内の「index.cgi」を使用する時の .htaccess の内容は以下のようになります。
Redirect /index.html http://tiki.ne.jp/cgi-bin/index.cgi
また、/home ディレクトリ内の「index.hdml」を使用する場合の .htaccess の内容は以下のようになります。
Redirect /index.html http://tiki.ne.jp/index.hdml