Показывать символические ссылки и их цели в списке веб-каталогов (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//'&'/'&amp;'}"
}

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 '&rarr; <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 здесь

Другие вопросы по тегам