如果文件夹中存在,则 Lighttpd 执行 ./cgi-bin/index.cgi

如果文件夹中存在,则 Lighttpd 执行 ./cgi-bin/index.cgi

如果存在,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}" )

相关内容