#apache
#apache
Вопрос:
Я пытаюсь добавить описание в список каталогов (сгенерированный apache). Однако я не могу найти способ заставить текст описания применяться только для точного совпадения имени файла / каталога.
Например, если у меня есть следующая структура каталога / файла
phpinfo2.php
phpinfo/
phpinfo.php
another_file.php
и я применяю директиву:
AddDescription "PHP" phpinfo
Это соответствует 3 из 4 файлов / каталогов следующим образом:
phpinfo2.php PHP
phpinfo/ PHP
phpinfo.php PHP
another_file.php
Однако то, что мне действительно хотелось бы, это:
phpinfo2.php
phpinfo/ PHP
phpinfo.php
another_file.php
поскольку я только хочу, чтобы директива AddDescription соответствовала точному имени файла / каталога.
Документы (http://httpd.apache.org/docs/2.2/mod/mod_autoindex.html#adddescription ) скажите, что «File — это расширение файла, частичное имя файла, подстановочное выражение или полное имя файла для описания файлов». — то есть невозможно сопоставить только полное имя файла / каталога?
Любая помощь приветствуется, или если могут быть альтернативные способы достижения того, чего я хотел бы. Спасибо.
Ответ №1:
Вы можете сделать это:
AddDescription "amp;nbsp;" *?phpinfo
AddDescription "amp;nbsp;" phpinfo?*
AddDescription "PHP" phpinfo
Apache применяет первое согласованное правило и пропускает любое следующее правило. Хитрость здесь заключается в том, чтобы использовать "amp;nbsp;"
содержимое по умолчанию для файла / папки, которое ничему не соответствует, для аннулирования любого файла / папки, которое содержит, phpinfo
но не является точным phpinfo
, так что описание применяется только к файлу / папке с точным именем phpinfo
.
Обратите внимание, что вы не можете использовать AddDescription "" ...
, потому что Apache не допускает пустой строковый параметр и выдаст ошибку.
ссылка: документ Apache 2.4
Комментарии:
1. Два упрощения: (1) Поскольку Apache позволяет указывать несколько спецификаций файлов в строке добавления описания, вы можете объединить первые две строки добавления описания, и (2) вы также можете просто использовать пробел в кавычках вместо заключенного в кавычки amp;nbsp;.
2. Третье упрощение: поскольку Apache соответствует частичным именам файлов, вы можете опустить звездочки. «?» работает точно так же, как «?*»
Ответ №2:
похоже, вы можете сделать это путем «совпадения с первым попаданием».
Итак, директивы должны выглядеть следующим образом:
AddDescription " " *.php
AddDescription "PHP" phpinfo