That file, mod_indexfile.so does not exist in any of the lighttpd packages. However it does exist within opensuse, so it can exist.
This would appear to be an issue as to how lighttpd was built. Others have had the same problem on other os's. Cure seems to be configuring a mix of static & shared at time of build. You need to raise an bug report, or use another server such as apache.
There appears to be an issue in the upstream lighttpd meson.build, and OpenWRT uses meson to build lighttpd. I'll submit a patch to OpenWRT on github before the end of the weekend.
You can manually do this to the unpackaged lighttpd source in your build tree:
That patch applies cleanly if applied before others.
Perhaps you need to git pull (and then updates feeds and such)
or you may need to make V=s -j 4 -k package/feeds/packages/lighttpd/clean
I have submitted subsequent patches to fix the missing mod_indexfile (and mod_staticfile) in https://github.com/openwrt/packages/pull/20909 as those modules are now built-in to lighttpd by default.
If you applied my patch prior to the one in the patches/ dir done by the build, then try building with QUILT=1 make V=s -j 4 -k package/feeds/packages/lighttpd/prepare QUILT=1
or make V=s -j 4 -k package/feeds/packages/lighttpd/refresh QUILT=1
(I'm not as familiar with all the openwrt-isms, but these helped me in the past.)
(Alternatively, if you're stuck, you might delete patches/020-meson-mod_webdav_min.patch if you're not using the special-package it enables.)