Nginx Directory Autoindex

Roman Arutyunyan arut at nginx.com
Thu Mar 1 16:45:27 UTC 2018


Hi,

On Thu, Mar 01, 2018 at 05:27:49PM +0100, Luciano Mannucci wrote:
> On Thu, 1 Mar 2018 12:16:34 +0000
> Miguel C <miguelmclara at gmail.com> wrote:
> 
> > there's a default sorting option for name/data etc
> > https://github.com/aperezdc/ngx-fancyindex#fancyindex-default-sort
> > 
> > I do see a default_sort as a directive but not for "ascending" "descending"
> > (doesn't since supper hard to implement in the code though, but I'm not a C
> > expert....
> Yes, it sould'nt be that hard... :)
> 
> > Vladimir Homutov just suggested a different approach with the autoindex
> > module and xslt that seems to serve you're need, and that way there's no
> > need to install a 3rd party moduel :)
> I'm not comfortable with XML/XSLT, so I just made a small hack to the
> original autoindex that is quite enough for me (=works and made my
> users happy :).
> 
> If there is some interest I can post my patch to the apropriate list
> (nginx devel, if I recall correctly :).

Just in case you'll get back to XML/XSLT, here's a simple configuration to
sort the files:

location / {
    autoindex on;
    autoindex_format xml;
    xslt_stylesheet conf/sort.xslt;
    root html;
}


sort.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>
            <table border="1">
                <xsl:for-each select="list/*">
                    <xsl:sort select="text()"/>
                    <tr>
                        <td><xsl:value-of select="text()"/></td>
                        <td><xsl:value-of select="@mtime"/></td>
                        <td><xsl:value-of select="@size"/></td>
                    </tr>
                </xsl:for-each>
            </table>
        </body>
    </html>
</xsl:template>

</xsl:stylesheet>

-- 
Roman Arutyunyan


More information about the nginx mailing list