22.19. Вывод содержимого каталогов без усечения имён файлов
Проблема
Некоторые страницы сайта отображают списки файлов, доступных для загрузки, прямо в браузере. Однако Apache по умолчанию выводит содержимое каталогов с усечением длинных имён файлов. Пример вывода с усечением:
Parent Directory 27-Jul-2004 09:39
libpam-smbpass_3.0.5..> 27-Jul-2004 09:17 298k
libsmbclient-dev_3.0..> 27-Jul-2004 09:17 581k
libsmbc1ient_3.0.5-l..> 27-Jul-2004 09:17 467k
Как настроить Apache для отображения полных имён файлов, чтобы пользователи могли видеть полное название каждого файла без усечения?
Решение
Чтобы разрешить вывод полных имён файлов, откройте файл конфигурации Apache httpd.conf
и найдите следующий фрагмент:
# IndexOptions: Управление внешним видом страниц с листингами
# каталогов, сгенерированными сервером
IndexOptions FancyIndexing VersionSort
Добавьте к директивам параметр NameWidth
, чтобы указать, что имена файлов должны выводиться полностью. Используйте звёздочку, чтобы задать неограниченную ширину для имён файлов:
IndexOptions FancyIndexing VersionSort NameWidth=*
Параметр NameWidth=*
позволяет отображать полные имена файлов, вне зависимости от их длины. Если требуется ограничить длину, например, чтобы имена файлов не занимали слишком много места в случае очень длинных названий, можно задать максимальную ширину, указав число символов, например, 40:
IndexOptions FancyIndexing VersionSort NameWidth=40
Таким образом, вы можете гибко настроить вывод для файлов с длинными именами и поддерживать удобный просмотр листинга каталогов на сайте.
Дополнительные настройки IndexOptions
Директива IndexOptions
позволяет изменять внешний вид страниц с листингами файлов. Ниже приведены несколько полезных параметров:
- FancyIndexing: включает расширенное форматирование листинга с использованием таблицы иконок и выравнивания, что улучшает восприятие пользователем.
- VersionSort: упорядочивает файлы с учётом версий (например, файл 1.10 будет идти после 1.2), что полезно для каталогов с файлами разного выпуска.
- SuppressHTMLPreamble: позволяет убрать автоматическое добавление заголовков HTML на страницах с листингами, если у вас есть кастомное оформление.
- DescriptionWidth: задаёт максимальную длину описания, если оно присутствует для файлов. Это полезно при настройке пользовательских комментариев.
Вы можете комбинировать эти параметры в конфигурации httpd.conf
для удобства пользователей и повышения наглядности отображения содержимого каталога.
Использование NameWidth для виртуальных хостов
В Apache можно задавать параметры листинга файлов для отдельных виртуальных хостов. Это полезно, если на одном сервере размещается несколько сайтов с разными требованиями к отображению. Настройка виртуального хоста VirtualHost
переопределяет глобальные директивы, позволяя гибко адаптировать вывод в зависимости от нужд каждого сайта:
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/example
<Directory /var/www/example>
Options Indexes
IndexOptions FancyIndexing VersionSort NameWidth=*
</Directory>
</VirtualHost>
Этот подход позволяет настроить листинг файлов для каждого виртуального хоста, так что одна и та же настройка не будет применяться ко всем сайтам, размещённым на сервере.
Полезные советы по настройке IndexOptions
- Для удобства пользователей стоит экспериментировать с шириной параметра
NameWidth
и настраивать его в зависимости от специфики файлов в каталоге. - Если файлы имеют значительные размеры, можно дополнительно указать параметр
SuppressLastModified
, чтобы скрыть столбец даты, если она не так важна. - Используйте
IconWidth
, чтобы ограничить ширину колонки иконок, когда листинг содержит много файлов с различными типами, это улучшит внешний вид.
См. также