Показывать символические ссылки и их цели в списке веб-каталогов (apache)
Перечисление содержимого каталога с ls -l
показывает этот вывод:
total 12
drwxr-xr-x 3 root root 4096 Dec 11 16:38 2.3
drwxr-xr-x 5 root root 4096 Dec 11 16:38 2.4
drwxr-xr-x 2 root root 4096 Dec 11 16:38 archive
lrwxrwxrwx 1 root root 10 Dec 11 16:38 current -> 2.4/2.4.1/
lrwxrwxrwx 1 root root 10 Dec 11 16:38 next -> 2.4/2.4.2/
lrwxrwxrwx 1 root root 10 Dec 11 16:38 previous -> 2.4/2.4.0/
Обратите внимание, как он показывает символические ссылки и их соответствующие цели.
Мне нужно знать, есть ли способ получить такое же поведение при просмотре каталогов apache.
Если Apache не способен на это, как я подозреваю, есть ли приложение (FLOSS), обеспечивающее такое поведение?
3 ответа
Я искал решение этой проблемы в контексте непрерывного конвейера доставки. В управлении бинарным репозиторием версии развиваются следующим образом: бета -> rc -> стабильный.
Я использую Apache 2.2 для доступа к двоичному файлу с любого сервера. Я решил использовать поле описания индекса apache.
Вот моя установка:
1) Добавьте необычную индексацию в файл конфигурации виртуального хоста (например, / etc / apache2 / site-available / my-vhost)
<VirtualHost *: 80 >
...
DocumentRoot /path/to/root
IndexOptions FancyIndexing
...
</ VirtualHost>
2) создать файл.htaccess в корневом каталоге (путь / к /root), содержащий символические ссылки.
# $version $lifecycle
AddDescription "2.10.0.5" beta
AddDescription "2.10.0.4" rc
AddDescription "2.9.0.9" stable
3) Затем используйте SSH + sed для замены " infile " номера версии: вот пример для беты,
ssh user@server "cd /path/to/root; sed -i 's/AddDescription.*$lifecycle$/AddDescription \"$version\" $lifecycle/g' .htaccess" && {
echo "Success."
} || {
echo "Failed.";
}
Конечно, это требует некоторых сценариев, но это решение достаточно динамично для меня..htaccess динамически учитывается Apache.
Цель символической ссылки напечатана под столбцом описания.
Надеюсь, это поможет.
В поле «Описание» таблицы вы можете указать, на что указывает ссылка.
Я написал сценарий оболочки (GPL v3), который поможет вам генерировать.htaccess
файлы с соответствующимиAddDescription
линии:
#!/bin/bash
# vi: et sts=4 sw=4 ts=4
# Usage: make-descriptions [DIR]...
# By default, adds a .htaccess file to '.'
set -e
shopt -s nullglob
if [[ $# -gt 0 ]]; then
DIRS=("$@")
else
DIRS=(.)
fi
escape() {
printf '%s\n' \
"${1//'&'/'&'}"
}
quote() {
printf '"%s"\n' \
"${1//'"'/'\"'}"
}
for DIR in "${DIRS[@]}"; do
HTACCESS=$DIR/.htaccess
printf 'IndexOptions -SuppressDescription\n' \
> "$HTACCESS"
for FN in "$DIR"/*; do
if [[ -L $FN ]]; then
TGT=$(readlink -- "$FN")
DESC=$(
printf '→ <a href=%s><tt>%s</tt></a>' \
"$(quote "$(escape "$TGT")")" \
"$(escape "$TGT")"
)
printf 'AddDescription %s %s\n' \
"$(quote "$DESC")" \
"$(quote "$(basename -- "$FN")")" \
>> "$HTACCESS"
fi
done
done
Это должно быть возможно с опциями mod_autoindex.
Посмотрите на варианты IndexOptions
а также IndexStyleSheet
здесь