Lighttpd
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但要復雜得多。
最簡單的解決方案是使用 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}" )