Есть ли способ определить свои собственные страницы автоиндекса в nginx?
Я хочу добавить свой собственный HTML и CSS к сгенерированным страницам автоиндекса.
Используя XSLT, можно настроить вывод xml автоиндекса с помощью xslt модуль:
location / {
autoindex on;
autoindex_format xml;
xslt_stylesheet /path/to/custom.xslt
}
Вот что я сделал в этом проекте: ngx-superbindex
Тот же ответ, что и гибатроник: используйте мощь xslt! Взгляните на этот образец файла xslt:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h3>Dafshabbat</h3>
<table border="0">
<tr bgcolor="#9acd32">
<th>name</th>
<th>size</th>
<th>date</th>
</tr>
<xsl:for-each select="list/*">
<xsl:sort select="@mtime"/>
<xsl:variable name="name">
<xsl:value-of select="."/>
</xsl:variable>
<xsl:variable name="size">
<xsl:if test="string-length(@size) > 0">
<xsl:if test="number(@size) > 0">
<xsl:choose>
<xsl:when test="round(@size div 1024) < 1"><xsl:value-of select="@size" /></xsl:when>
<xsl:when test="round(@size div 1048576) < 1"><xsl:value-of select="format-number((@size div 1024), '0.0')" />K</xsl:when>
<xsl:otherwise><xsl:value-of select="format-number((@size div 1048576), '0.00')" />M</xsl:otherwise>
</xsl:choose>
</xsl:if>
</xsl:if>
</xsl:variable>
<xsl:variable name="date">
<xsl:value-of select="substring(@mtime,9,2)"/>-<xsl:value-of select="substring(@mtime,6,2)"/>-<xsl:value-of select="substring(@mtime,1,4)"/><xsl:text> </xsl:text>
<xsl:value-of select="substring(@mtime,12,2)"/>:<xsl:value-of select="substring(@mtime,15,2)"/>:<xsl:value-of select="substring(@mtime,18,2)"/>
</xsl:variable>
<tr>
<td><a href="{$name}"><xsl:value-of select="."/></a></td>
<td align="right"><xsl:value-of select="$size"/></td>
<td><xsl:value-of select="$date"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Что мне особенно нравится, так это возможность сортировки по дате, которая определяется здесь с помощью: <xsl:sort select="@mtime"/>
Это, безусловно, требует больше усилий для настройки по сравнению с добавлением пары директив в файл .htaccess. И, xml-файлы неудобно писать и читать. Тем не менее, потенциал настройки велик, и очень приятно иметь!
См. Вводное руководство по w3schools.
оказывается, вы можете добавить действительный html с помощью модуль добавления http.
я не утверждаю, что понимаю это полностью, но есть репозиторий, который именно то, что ты хочешь, так что вы можете попробовать продолжить работу оттуда.
Изменить (2019):
После изучения это на самом деле довольно простая задача.
.assets
, поэтому автоиндекс не отобразит его.add_after_body /.assets/my_html_file.html
к вашим правилам nginx. та-да!Обратите внимание, что согласно документации этот модуль не является частью компиляции по умолчанию. Я обнаружил, что он есть в пакете nginx на ubuntu.
Существование Необычный указатель модуль предполагает, что встроенный модуль автоиндекса не имеет возможности настройки. Я не уверен, что порекомендовал бы мне модный индексный модуль - он не выглядит особенно актуальным (последний раз редактировалось в 2007 году ...)
Вы также можете попробовать h5ai:
Они предоставляют действительно хороший интерфейс для просмотра файлов.