navigation ://

Узнай больше о сайте

версия 4.2



Сделай apache directory index секси в 2 шага

09 декабря 2005
Вам нравится как у меня выглядит страница с файлами files.myeburg.net ? Всё это сделано без использования программирования в PHP или  в других скриптовых языков. Всё что Вам нужно это несколько рисунков и немножко расширенная конфигурация веб-сервера Apache.

Здесь несколько изображений: Вот как всё это выглядит на обычной конфигурации, с моей конфигурацией, более ранняя конфигурация.

Что б сделать такое же у себя на сервере Вам нужно пройти 2 шага:
  • конфигурация индекса директории и разработка дизайна
  • замена стандартных иконок типов файлов на свои.

Первый шаг

Допустим Ваша директория, которую Вы хотите сделать видимой с помощью apache лежит здесь: /www/dir
Теперь вам нада создать новую папку в этой диресктории с "." в начале названия, 
mkdir /www/dir/.include
теперь вы можете установить все необходимые файлы для секси индицирования в эту папку. Создайте header.html, end.html и default.css в этой новой директории.
header.html файл необходим для того чтобы указать дизайн ваших страниц до перечисления файлов, end.hml - после. А default.css всего лиш файл стилей для того чтобы определить как все елементы на странице должны выглядеть.
Вы можете посмотреть все файлы полностью сами, здесь я буду указывать только на главные части. Например сделаем header.hml таким образом:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<head>
    <title>files.myeburg.net</title>
    <link rel="stylesheet" type="text/css" href="/.include/default.css">
</head>
<body>
<div id="hdr">
<div id="logo"><a href="http://screens.myeburg.net/">screens myeburg.net</a></div>
<div id="content">
А end.html  выглядит вот так:
</div>
</body>
</html>
Теперь Вам осталось сделать default.css для указания стилей страницы, что и будет указывать браузеру как всё будет выглядеть.

Перейдём к конфигурации apache.Всё это можно прописать в http.conf (или файлах которые он подключает), или как раз в htaccess который должен быть в DocumentRoot или в папке индексирования.
Это моя конфигурация для всего virtualhost. Я не очень люблю делать такие вещи в httaccess файлах, поскольку это немножко больше нагружает веб-сервер.
<VirtualHost *:80>
    ServerName files.myeburg.net
    DocumentRoot "/www/dir"
    HeaderName "/.include/header.html"
    ReadmeName "/.include/end.html"
    <Directory "/www/dir">
        Options Indexes
        <IfModule mod_autoindex.c>
            IndexOptions FancyIndexing SuppressHTMLPreamble FoldersFirst ScanHTMLTitles
            IndexOptions DescriptionWidth=24
            IndexOptions NameWidth=48
        </IfModule>
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>
Как Вы видите я определяю заглавную и Readme часть файла также указываю опции для fancy индексирования Вы можете побаловаться с этим параметрами чтобы найти Вашу оптимальную конфигурацию.

Все файлы, которые я использую Вы можете посмотреть здесь: files.myeburg.net/.include/

После перезагрузки (если конфигурация была сделана в части http.conf) apache Вы должны получить новый вид индексирования папок. Вот только картинки типов файлов пока ещё очень страшные. Эту проблему мы решим во 2 разделе.

Второй Шаг

Нам нужны более красивые иконки для всех типов файлов. Я использую иконки из гнома, mime png размером 16x16. Этот размер не оптимальный, потому что не соответствует размеру шрифта, а ещё Интернет Експлорер не умеет показывать прозрачности в png. Я не забочусь о людях которые используют buggy программы . Если у Вас найдётся лучшее решение этой проблемы, напишите мне об этом в комментариях.
Нам придётся опять изменить http.conf файл и добавить больше определений с иконками и типами файлов.
Здесь полная конфигурация которая Вам нужна, а вот маленькая часть того как оно выглядит:
<IfModule mod_autoindex.c>
    AddIcon /icons/csharp.png .csharp
    AddIcon /icons/flash.png .flv .swf
</IfModule>
Вам ещё нужно загрузить все файлы с иконками на сервер
и заменить ими существующие уже в apache. Это всё,  после перезагрузки apache у Вас получилась собственная секси индексация файлов в папке .

Добавка: мои архивы икон.