.htaccess - mod_imagemap
mod_imagemap
以下は、mod_imagemap モジュールのディレクティブの一覧です。mod_imagemap は、サーバサイドで画像を処理するモジュールです。このモジュールを使うことで、画像の任意の部分にリンクを設定できます。ただし、Apache 1.3.39 以前、2.0.61 以前、2.2.6 以前のモジュールにはクロスサイトスクリプティングの脆弱性が存在します。 ベンダが提供する最新版にアップデートすることで、脆弱性の問題を修正できます。
mod_imagemap は、イメージマップ (またはクリッカブル・マップ) ファイルを扱います。イメージマップファイルには、"サーバサイド・イメージマップ" と "クライアントサイド・イメージマップ" の 2 種類があります。mod_imagemap は、サーバサイド・イメージマップを使用します。イメージマップを使用するには、imap-file ハンドラにマップファイル (.map) を対応付ける必要があるため、AddHandler ディレクティブで対応付けます。
# imap-file ハンドラにマップファイルを対応付ける。
AddHandler imap-file .map
マップファイルの対応付けが完了したら、次はマップファイルを作成します。マップファイルには、directive
(命令)、value
(値)、[x,y ...]
(座標)、説明文 の 4 つの要素があります。4 つの要素の書き方には順序があり、以下の 3 通りの指定ができます。
# イメージマップのフォーマット
directive value [x,y ...]
directive value "Menu text" [x,y ...]
directive value x,y ... "Menu text"
"
に囲まれた文字列は、イメージマップファイル表示時の説明文になります。x,y
の座標は画像の x 座標と y座標になります。ただし、下表の base
と default
は説明文と座標を指定できないため、記述を省略します。directive
と value
の値は下表に示します。
値 | 説明 |
---|---|
base | マップファイル内での相対 URL を指定します。 |
default | マップファイル内にデフォルトのリンク先の領域を定義します。point がある場合、point で指定した領域がデフォルトの領域になります。point がない場合、poly 、circle 、rect 以外の領域がデフォルトになります。 |
poly | 多角形を指定します。座標は、3 ~ 100 点の範囲で指定できます。 |
circle | 円を指定します。座標は、中心点と円周上の 1 点を指定できます。 |
rect | 四角形を指定します。座標は、対角となる 2 点を指定します。 |
point | 点を指定します。点の範囲は、クリックした点から最も近い点が有効になります。point を指定した場合、default は無効になります。 |
値 | 説明 |
---|---|
URL | リンク先の URL を指定します。base や ImapBase ディレクティブが定義されている場合、そこからの相対パスとなります。 |
map | マップファイルメニューを表示します。 ただし、ImapMenu ディレクティブで none を指定した場合は、表示されません。 |
menu | map と同様です。 |
referer | HTTP ステータスコード 302 を返します。 |
nocontent | HTTP ステータスコード 204 を返します。base を除くすべての命令に有効です。 |
error | HTTP ステータスコード 500 を返します。base を除くすべての命令に有効ですが、default 以外は不適当です。 |
上記の説明を元に、サーバサイド・イメージマップを行う例としては、以下のようになります。
# .htaccess
AddHandler imap-file .map
# imagemap.map
default /
rect https://murashun.jp/ "四角形" 20,20 80,80
# sample.html
<a href="/maps/imagemap.map">
<img ismap src="/img/imagemap.gif">
</a>
ImapBase ディレクティブ
ImapBase ディレクティブは、マップファイルで使われるデフォルトの URL を設定できます。指定しない場合は、デフォルト値として、http://servername/
になります。以下は、本ディレクティブの構文になります。
# ImapBase ディレクティブの構文
ImapBase map|referer|URL
ImapDefault ディレクティブ
ImapDefault ディレクティブは、マップファイルの中で使われる default
のデフォルト値を URL
、map
、referer
、nocontent
、error
から指定できます。指定しない場合は、nocontent
となります。
# ImapDefault ディレクティブの構文
ImapDefault error|nocontent|map|referer|URL
ImapMenu ディレクティブ
ImapMenu ディレクティブは、イメージマップのメニュー表示を設定できます。
# ImapMenu ディレクティブの構文
ImapMenu none|formatted|semiformatted|unformatted
値 | 説明 |
---|---|
none | イメージマップのメニューを表示しません。 ただし、マップファイルの default で定義した動作を行います。 |
formatted | ヘッダ、およびリンク一覧を表示します。 ただし、マップファイルで定義した説明文は表示されません。 |
semiformatted | リンク一覧、およびマップファイルで定義した説明文を表示します。 |
unformatted | マップファイルの中に HTML を記述することで、オリジナルのメニューを設定できます。 |
関連記事
- .htaccess - コア機能
- .htaccess - mod_actions
- .htaccess - mod_alias
- .htaccess - mod_auth_basic
- .htaccess - mod_authn_default
- .htaccess - mod_authn_file
- .htaccess - mod_authz_default
- .htaccess - mod_authz_groupfile
- .htaccess - mod_authz_host
- .htaccess - mod_authz_user
- .htaccess - mod_autoindex
- .htaccess - mod_env
- .htaccess - mod_expires
- .htaccess - mod_filter
- .htaccess - mod_headers
- .htaccess - mod_include
- .htaccess - mod_mime
- .htaccess - mod_negotiation
- .htaccess - mod_setenvif
- .htaccess - mod_dir
- .htaccess - mod_rewrite