Openwrt + uhttpd 如何配置多个默认主页

接上文. 我通过 openwrt 自带的 uhttpd 经过配置,可以令客户在浏览器中执行 lua 脚本.

    那么我就想,让这个lua脚本在客户访问 url根目录时才执行,再进入子目录的时候只访问静态页面,该怎么办呢?

    用过其它的 web 服务器的朋友知道,有个很实用的功能, 就是自定义多个index文件.

    openwrt默认提供的配置文件中所提供的线索比较有限,我查看了多个openwrt的默认配置文件都没有什么结果.

    uhttpd是openwrt开发者从头编写的 Web 服务器, 难道这些大牛连这么实用的功能都没能添加进去吗?

    一阵乱搜,还真被我找到了.


见:   https://wiki.openwrt.org/doc/uci/uhttpd

   本人英文不怎么样,但硬着头皮还是能看懂一些的.

   与默认主页文件有关的有两个配置选项.

 

index_file file name no index.html, index.htm, default.html, default.htm Index file to use for directories, e.g. add index.php when using php
index_page file name no index.html Index file to use for directories, e.g. add index.php when using php (last, 20131015, replace index_file ?) should be noted: list index_page "index.html index.htm default.html default.htm index.php"

从说明来看, index_page 可能是用来代替 index_file的.


直接编辑  /etc/config/uhttpd

在[]下添加一句:

 list index_page 'index.lua index.html'

或者可以:

 list index_page 'index.lua`

 list index_page 'index.html'

这样,用户访问目录时,uhttpd服务就会尝试在目录下查找 index.lua index.html了.


这里要鄙视一下 IE浏览器, 可恶的缓存文件经常会来捣乱, 直接访问,F5,CTRL+F5 可能会出现多种不一样的结果.

换用chrome之类的就好多了,不过,调试时我用wget 会更可靠些:


wget -q -O - "http://192.168.1.1"

最后,为了安全,我再上一句:

option no_dirlists  '1'

可以防止用户访问列出目录下所有文件.


本文章由作者:佐须之男 整理编辑,原文地址: Openwrt + uhttpd 如何配置多个默认主页
本站的文章和资源来自互联网或者站长的原创,按照 CC BY -NC -SA 3.0 CN协议发布和共享,转载或引用本站文章应遵循相同协议。如果有侵犯版权的资 源请尽快联系站长,我们会在24h内删除有争议的资源。欢迎大家多多交流,期待共同学习进步。

相关推荐