如果存在,BusyBox httpd 将执行./cgi-bin/index.cgi
。这类似于index.php
但带有/cgi-bin/
文件夹。例如,我有以下结构:
/api/
cgi-bin/index.cgi
/blog/
cgi-bin/index.cgi
/rss/
cgi-bin/index.cgi
因此,当请求到达时,http://example.com/api/
它们实际上由脚本处理/www/api/cgi-bin/index.cgi
。当请求到达时,http://example.com/blog/
它由处理/www/blog/cgi-bin/index.cgi
,但/blog/rss/
路径由处理/www/blog/rss/cgi-bin/index.cgi
。
但现在我还想支持 Lighttpd 网络服务器。我该怎么做?
这看起来类似于使 lighttpd 从 www.example.com 重定向到 www.example.com/cgi-bin/index.pl但要复杂得多。
答案1
最简单的解决方案是使用 lighttpd mod_indexfile:
index-file.names = ( "cgi-bin/index.pl" )
如果您想在内部重写目标,请尝试 lighttpd mod_rewrite:
一般来说:
url.rewrite-once = ( ".*/(?:\?|$)" => "${url.path}cgi-bin/index.pl${qsa}" )
更准确地说,仅限于示例中的路径:
url.rewrite-once =
( "^/(?:api|blog(?:/rss)?)/(?:\?|$)" => "${url.path}cgi-bin/index.pl${qsa}" )