суббота, 19 марта 2016 г.

Настройка модуля mod_autoindex Apache для стильного отображения индексов  - списка файлов.

По умолчанию в apache список файлов будет отображаться так:


Стандартными средствами можно страницу списка файлов представить таким образом:


Для это выполним следующие действия:

1. Разрешим серверу Apache перечитывать файл .htaccess, при обращении к каждому каталогу.
Для этого заходим в конфигурационный файл:
# nano /etc/httpd/conf/httpd.conf
Находим раздел <Directory "/var/www/html"> и правим директиву AllowOverride. Вместо, установленного по умолчанию значения None, ставим All.
AllowOverride All
Рестартуем сервис
# systemctl restart httpd.service

2. В каталог, вид которого будем модифицировать поместим файл . htaccess.
Нужно иметь в виду, что директивы, указанные в этом файле будут применятся и ко всем вложенным каталогам!
Содержимое этого файла для преобразования внешнего вида каталога у меня такое:
IndexOptions NameWidth=*  +Charset=UTF-8 +IgnoreCase +FoldersFirst +XHTML +HTMLTable +SuppressRules +SuppressDescription
IndexIgnore .htaccess .htaccess~ dirlist_header.html dirlist_footer.html
IndexOrderDefault Descending Name
HeaderName /listdir/dirlist_header.html
ReadmeName /listdir/dirlist_footer.html
AddIcon (IMG,/listdir/folder.png) ^^DIRECTORY^^
AddIcon (IMG,/listdir/p_folder.png) ..
AddIcon (IMG,/listdir/text.png) *.txt *.conf *.conf.save *.conf.save.* *.adsi *.sample *.conf.old *.ael
AddIcon (IMG,/listdir/backup.png) *.bak *.backup
AddIcon (IMG,/listdir/pcap.png) *.pcap
DefaultIcon /listdir/misc.png
Это файл ссылается на Html файлы заголовка и концевика, а так же на иконки, размещенные в папке web-сервера  - listdir
Содержимое файлов dirlist_header.html и dirlist_footer.html
dirlist_header.html
<!DOCTYPE html>
<html>
<head>
<title>Список файлов</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link href="/bootstrap/css/bootstrap.css" rel="stylesheet">
<style>
   TD, TH {
    padding: 8px; /* Поля вокруг текста */
    padding-left: 15px;
   }
</style>
</head>
<body>
<div class="container">
<div class="row">
<h1 class="location">Каталог файлов: </h1>
dirlist_footer.html
</div>
</div>
</body>
</html>
Файлы иконок:

 - backup.png

 
 - folder.png

 
- misc.png


- p_folder.png

 
- pcap.png

 
- text.png


3. Для того что бы раздел со списком файлов был доступен по паролю, необходимо добавить в файл .htaccess строки:
#Блок аутентификации
AuthType Basic
AuthName "This directory is kept private and password protected!"
AuthUserFile /var/www/html/backup-config/.htpasswd
Require valid-user
Указанный в конфигурации файл .htpasswd должен содержать логин и пароль, по которому пользователь сможет авторизоваться для просмотра страницы:
Создаем это файл:
# touch /var/www/html/backup-config/.htpasswd
Содержимое файла лучше всего сгенерировать, воспользовавшись on-line сервисом http://www.htaccesstools.com/htpasswd-generator/ 
У меня содержимое примерно такое:
operator:$afr1$YKy9JCsk$Iyg1H.Np400bDAFyAsh5N0

Комментариев нет:

Отправить комментарий