ディレクトリの参照ページで、ファイルのアイコンを表示する


ディレクトリの参照を有効にしていると、規定のドキュメントにしたファイルが存在しないときにそのディレクトリにあるファイル/フォルダの一覧を表示します。

ここでの表示はとてもに素っ気ないものですが、以下のようにすることで、ファイルの拡張子に応じたアイコンを表示することができます。

  1. 拡張子ごとにアイコン画像のファイルを作成します。
    ex.)

    • ファイルのロケーション:http://www.windows-maniax.com/icon
    • ファイルの接頭辞: icon
    • ファイル形式: gif

    拡張子がjpegのファイル用:http://www.windows-maniax.com/icon/iconjpeg.gif
    拡張子がhtmlのファイル用:http://www.windows-maniax.com/icon/iconhtml.gif

  2. 1で定義しなかった拡張子用の共通アイコンファイルを作成します。
    ex.) 上記の例の場合
    http://www.windows-maniax.com/icon/icon.gif
  3. ディレクトリ用のアイコン画像ファイルを作成します。
    ex.) 上記の例の場合
    http://www.windows-maniax.com/icon/icondir.gif
  4. URL Rewrite Module v2.0をインストールしていない場合はインストールします。
    >>> URL Rewrite Module (IIS.net)

    ※現時点(2009/12/23)ではv2.0はRC2です。v1.1では不具合や機能不足なことがあります。
  5. IISマネージャを起動します。
  6. [接続]ウィンドウで、スタイルシートを適用するサイトやディレクトリを選択します。
  7. [URL Rewrite]をクリックします。
  8. “URL Rewrite”ページの[操作]ウィンドウで[View Pre-conditions]をクリックします。
  9. “Pre-conditions for Outbound Rules”ページの[操作]ウィンドウで[Add]をクリックします。
  10. [Add Pre-condition]ダイアログの[Add]ボタンをクリックし、[Add Condition]ダイアログの各項目に以下のように入力します。
    Condition input {REQUEST_FILENAME}
    Check if input string Matches the pattern
    Pattern ¥¥$
  11. 再び[Add Pre-condition]ダイアログの[Add]ボタンをクリックし、[Add Condition]ダイアログの各項目に以下のように入力します。
    Condition input {HTTP_CONTENT_TYPE}
    Check if input string Matches the pattern
    Pattern ^text/html
  12. [Add Pre-condition]ダイアログの各項目に以下のように入力します。
    Name 任意のPre-condition名
    ex.) Directory-condition
    Using Regular Expressions
    Conditions
    Logical Grouping Match All
  13. [操作]ウィンドウで[Back To Rules]をクリックして[URL Rewrite]ページに戻ります。
  14. “URL Rewrite”ページの[操作]ウィンドウで[Add Rules]をクリックします。
  15. [Add rule(s)]ダイアログで”Outbound rules”の[Blank rule]を選択します。
  16. 各項目に以下のように入力します。
    Name 任意のルール名
    ex.) Directory-list
    Pre-condition 前述の12で入力したPre-condition名を選択します。
    ex.) Directory-condition
    Match URL
    Requested URL Matches the pattern
    Using Exact Match
    Pattern ( <A HREF=”[^”]*\.(拡張子1|拡張子2|…拡張子?)”>)|( <A HREF=”[^”]*”>)|((&lt;)(dir)(&gt;)( <A HREF=”[^”]*”>))
    ex.) ( <A HREF=”[^”]*\.(php|html)”>)|( <A HREF=”[^”]*”>)|((&lt;)(dir)(&gt;)( <A HREF=”[^”]*”>))
    Match the content within 何も 選択しません。
    Custom Tags 選択できません。
    Ignore Case チェックします。
    Condions
    No conditions definedのままでOKです。
    Action
    Action Type Rewrite
    Action properties
    Value
    {R:5}{R:6}{R:7}&nbsp;<img src=”/icon/icon{R:2}{R:6}.gif” />{R:1}{R:3}{R:8}
    ※画像ファイルを/icon/icon*.gifというパスにしている場合
    Stop processing ~ ディレクトリの参照の表示に、他のRewrite Ruleを適用する可能性がない場合のみチェックします。
    そうでない場合はチェックしてはいけません。
  17. [操作]ウィンドウで[適用]をクリックしてください。

以上

[このドキュメントに対応する環境]

  • OS
    • WIndows Server 2008
    • Windows Vista
    • Windows 7
  • IIS
    • 7.0
    • 7.5


タグ: , , ,


コメントをどうぞ