HOME
Apache の設定ファイル .htaccess について解説します。.htaccess の書き方から、各ディレクティブの解説、環境変数の用例まで網羅しています。
AddAlt ディレクティブは、IndexOptions ディレクティブの FancyIndexing オプションにおいて、アイコンの表示ができない場合の代替テキストを提供します。HTML の img タグで画像が提供できない場合に、alt 属性によって代替テキストが表示される場合と似ています。アイコンが表示できないケースとしては、画像の読み込みに失敗した場合や、読み込みを無効にしている場合などがあります。
以下は 本ディレクティブの構文となります。代替テキストは string
に任意の文字列を設定します。文字列に空白がある場合は、'
または "
で囲む必要があります。file
は代替テキストを提供する完全なファイル名、ファイル名の一部、ワイルドカード表現、拡張子のいずれかを指定します。複数のファイルを指定する場合は、半角スペースを空けて指定します。
# AddAlt ディレクティブの構文
AddAlt string file [file] ...
以下の例では、PDF ファイルのアイコンが表示できない場合に "PDF file" と表示する設定例です。
# AddAlt ディレクティブの設定例
AddAlt "PDF file" *.pdf
AddAltByEncoding ディレクティブは、IndexOptions ディレクティブの FancyIndexing オプションにおいて、アイコンの表示ができない場合、MIME 符号化方法で指定された代替テキストを提供します。MIME 符号化方法とは、例えば x-compress などです。その他は、AddAlt ディレクティブと同じなので、AddAlt ディレクティブを参照して下さい。
# AddAltByEncoding ディレクティブの構文
AddAltByEncoding string MIME-encoding [MIME-encoding] ...
# AddAltByEncoding ディレクティブの設定例
AddAltByEncoding gzip x-gzip
AddAltByType ディレクティブは、IndexOptions ディレクティブの FancyIndexing オプションにおいて、アイコンの表示ができない場合、MIMEタイプ(Content-Type)で指定された代替テキストを提供します。MIMEタイプ(Content-Type)とは、例えば text/html などです。その他は、AddAlt ディレクティブと同じなので、AddAlt ディレクティブを参照して下さい。
# AddAltByType ディレクティブの構文
AddAltByType string MIME-type [MIME-type] ...
# AddAltByType ディレクティブの設定例
AddAltByType 'plain text' text/plain
AddDescription ディレクティブは、IndexOptions ディレクティブの FancyIndexing オプションにおいて、ファイルに対する説明文を設定できます。
以下は 本ディレクティブの構文となります。ファイルの説明文は string
に任意の文字列を設定します。文字列に空白がある場合は、'
または "
で囲む必要があります。file
は説明するファイルの完全なファイル名、ファイル名の一部、ワイルドカード表現、拡張子のいずれかを指定します。複数のファイルを指定する場合は、半角スペースを空けて指定します。
# AddIcon ディレクティブの構文
AddDescription string file [file] ...
デフォルトの説明領域は 23 Byte の幅となります。しかし、IndexOptions ディレクティブのアイコン、ファイルサイズ、最終更新日時を消すオプションを使用することにより、より広い幅が得られます。
そのため、説明文の最大幅は 55 Byte になります。最大幅の Byte 数を超えると、説明文の末尾に >
が付与され、以降の文字列は省略されます。
# AddDescription ディレクティブの設定例
AddDescription "The planet Mars" /web/pics/mars.gif
AddIcon ディレクティブは、IndexOptions ディレクティブの FancyIndexing オプションにおいて、表示するアイコンを設定できます。以下の構文の icon
には、表示するアイコンのパスを相対 URL か、他の書式 (alttext, url) で指定します。name
には、ディレクトリを示す ^^DIRECTORY^^、空白行を示す ^^BLANKICON^^、完全なファイル名、ファイル名の一部、ワイルドカード表現、拡張子のいずれかを指定します。
# AddIcon ディレクティブの構文
AddIcon icon name [name] ...
# AddIcon ディレクティブの設定例
AddIcon (IMG,/icons/image.gif) .gif .jpg .png
AddIcon /icons/dir.gif ^^DIRECTORY^^
AddIcon /icons/backup.gif *
ただし、可能であれば本ディレクティブよりも、AddIconByType ディレクティブを優先的に使うべきです。AddIconByType ディレクティブは MIMEタイプ(Content-Type)毎に表示するアイコンを設定できるため、より本質的であると考えます。
AddIconByEncoding ディレクティブは、IndexOptions ディレクティブの FancyIndexing オプションにおいて、表示するアイコンを MIME 符号化方法で設定できます。以下の構文の icon
には、表示するアイコンのパスを相対 URL か、他の書式 (alttext, url) で指定します。MIME-encoding
には、MIME 符号化方法に該当する文字列、またはワイルドカード表現が使用できます。
# AddIconByEncoding ディレクティブの構文
AddIconByEncoding icon MIME-encoding [MIME-encoding] ...
# AddIconByEncoding ディレクティブの設定例
AddIconByEncoding /icons/compress.xbm x-compress
AddIconByType ディレクティブは、IndexOptions ディレクティブの FancyIndexing オプションにおいて、表示するアイコンを MIME タイプ(Content-Type)で設定できます。以下の構文の icon
には、表示するアイコンのパスを相対 URL か、他の書式 (alttext, url) で指定します。MIME-type
には、リクエストされた MIME タイプ(Content-Type)に該当する文字列、またはワイルドカード表現が使用できます。
# AddIconByType ディレクティブの構文
AddIconByType icon MIME-type [MIME-type] ...
# AddIconByType ディレクティブの設定例
AddIconByType (IMG,/icons/image.gif) image/*
DefaultIcon ディレクティブは、IndexOptions ディレクティブの FancyIndexing オプションにおいて、表示するアイコンがない場合にデフォルトアイコンを設定できます。以下の構文の url-path
には、アイコンへの相対パスを設定します。
# DefaultIcon ディレクティブの構文
DefaultIcon url-path
# DefaultIcon ディレクティブの設定例
DefaultIcon /icon/unknown.gif
HeaderName ディレクティブは、インデックスファイルの body
タグの先頭に挿入するファイルの名前を設定できます。以下の構文の filename
には、取り込むファイル名をインデックスファイルが表示されるディレクトリからの相対パスで指定します。/
から始まる場合は、DocumentRoot からの相対パスとなります
# HeaderName ディレクティブの構文
HeaderName filename
# HeaderName ディレクティブの設定例
HeaderName HEADER.html
上記の例では、左の画像が HeaderName ディレクティブを利用していないデフォルトの状態です。右の画像が HeaderName ディレクティブを利用して sample.html から文字列を読み込んだ状態です。
IndexHeadInsert ディレクティブは、インデックスファイルの head
タグ内に挿入する文字列を設定できます。半角スペースを含む場合は、"
で囲む必要があります。その際、タグ内で使われる "
は \
でエスケープが必要な点に注意して下さい。本ディレクティブは、Apache 2.2.11 以降で使用可能です。
# IndexHeadInsert ディレクティブの設定例
IndexHeadInsert "<link rel=\"sitemap\" href=\"/sitemap.html\">"
IndexIgnore ディレクティブは、ディレクトリの一覧を表示させる前に、非表示にするファイルを設定します。以下の構文の file
には、完全なファイル名、ワイルドカード表現が使えます。
# IndexIgnore ディレクティブの構文
IndexIgnore file [file] ...
# IndexIgnore ディレクティブの設定例
IndexIgnore README .htaccess *.bak *~
本ディレクティブが複数設定されている場合は、非表示にするリストに追加が行われ、置換は行われません。また、デフォルト値として、カレントディレクトリを表す .
が含まれています。
IndexOptions ディレクティブには、ディレクトリインデックスの挙動を設定できます。
# IndexOptions ディレクティブの設定例
IndexOptions FancyIndexing
値 | 説明 |
---|---|
DescriptionWidth=[n|*] | 説明文の幅を文字数で指定できます。 設定しない場合は、説明文の幅を自動調節します。 DescriptionWidth=n で、説明文の幅を n バイトに固定します。 DescriptionWidth=* で、説明文の幅を最長の長さまで伸ばします。 |
FancyIndexing | 飾り付きインデックスをオンにします。 |
FoldersFirst (Apache 2.0.23 以降) | サブディレクトリがファイルよりも前に表示されます。このオプションは、FancyIndexing が有効である必要があります。 |
HTMLTable (Apache 2.0.23 以降) | テーブルを使った単純な表を作り、ディレクトリ一覧を表現します。このオプションは、FancyIndexing が有効である必要があります。 |
IconsAreLinks | FancyIndexing において、 アイコンもファイル名へのリンクの一部にします。このオプションは、FancyIndexing が有効である必要があります。 |
IconHeight[=pixels] | アイコンの img タグに height 属性を指定できます。設定しない場合は、Apache で提供されているアイコンの標準の高さがデフォルトになります。 |
IconWidth[=pixels] | アイコンの img タグに width 属性を指定できます。設定しない場合は、Apache で提供されているアイコンの標準の幅がデフォルトになります。 |
IgnoreCase | ファイル名の大文字と小文字を区別せずにソートを行います。 |
IgnoreClient | クライアントからのすべてのクエリー変数を無視します。ソートなどはクエリー変数を含むため、ファイルのソートもできなくなります。 |
NameWidth=[n|*] | ファイル名の幅を文字数で指定できます。 設定しない場合は、ファイル名の幅を自動調節します。 NameWidth=n で、ファイル名の幅を n バイトに固定します。 NameWidth=* で、ファイル名の幅を最長の長さまで伸ばします。 |
ScanHTMLTitles | HTML ドキュメントから title タグ内の文字列を取り出しを許可します。もしも、AddDescription で説明文が無い場合、httpd は title タグの値を読むためにドキュメントを読み始めます。このオプションは、FancyIndexing が有効である必要があります。 |
ShowForbidden | サブリクエストの結果が HTTP_UNAUTHORIZED (HTTP 401エラー:許可なし) や、HTTP_FORBIDDEN (HTTP 403エラー:アクセス拒否) のファイルも一覧に表示します。 |
SuppressColumnSorting | FancyIndexing で表示されている先頭行のソートを行うためのリンクをしなくなります。 |
SuppressDescription | FancyIndexing におけるファイルの説明文の表示を消去します。 |
SuppressHTMLPreamble | HeaderName ディレクティブで指定したファイルを body タグからではなく head タグから表示を行います。 |
SuppressIcon (Apache 2.0.23 以降) | FancyIndexing におけるファイルのアイコンの表示を消去します。 |
SuppressLastModified | FancyIndexing におけるファイルの最終更新日時の表示を消去します。 |
SuppressRules (Apache 2.0.23 以降) | ディレクトリ一覧において水平区切り線 (hr タグ) を消去します。 |
SuppressSize | FancyIndexing におけるファイルのサイズの表示を消去します。 |
TrackModified (Apache 2.0.23 以降) | HTTP ヘッダ中に、 ディレクトリの Last-Modified や ETag を含めます。 |
VersionSort (Apache 2.0a3 以降) | バージョン番号を含んだファイルが自然な順番でソートされるようにします。文字列は通常通りソートされ、それ以外の "数" となる部分の文字列は数値で比較されます。 |
XHTML (Apache 2.0.49 以降) | HTML 3.2 の代わりに XHTML 1.0 のコードを出力するようになります。 |
本ディレクティブのオプションは、上位ディレクトリから継承されたオプションを下位ディレクトリで +
や -
を付けることで増減させることができます。下位ディレクトリで +
や -
を付けずにオプション指定をした場合、上位ディレクトリから継承されたオプションはすべて破棄されて、下位ディレクトリで指定したオプションのみ有効になります。
IndexOrderDefault ディレクティブは、IndexOptions ディレクティブの FancyIndexing オプションにおいて、標準のファイルの並び方を設定できます。本ディレクティブは、2 つの引数を設定します。1 つ目の引数は、昇順か降順かを指定する引数です。Ascending
(昇順)、または Descending
(降順) を指定します。2 つ目の引数は、ソートキーを指定する引数です。Name
、Date
、Size
、Description
のいずれかを指定します。
# IndexOrderDefault ディレクティブの構文
IndexOrderDefault Ascending|Descending Name|Date|Size|Description
# IndexOrderDefault ディレクティブの設定例
IndexOrderDefault Ascending Name
IndexStyleSheet ディレクティブは、ディレクトリインデックスに使用される CSS を指定できます。
# IndexStyleSheet ディレクティブの構文
IndexStyleSheet "/css/style.css"
ReadmeName ディレクティブは、インデックスファイルの body
の閉じタグの直前に挿入するファイルの名前を設定できます。以下の構文の filename
には、取り込むファイル名をインデックスファイルが表示されるディレクトリからの相対パスで指定します。/
から始まる場合は、DocumentRoot からの相対パスとなります
# ReadmeName ディレクティブの構文
HeaderName filename
# ReadmeName ディレクティブの設定例
ReadmeName /include/FOOTER.html