You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Lighttpd如何在将URI传递给uWSGI前重写URI?

解决方案

你可以利用lighttpd mod_scgi模块的strip-request-url参数实现需求,无需修改代码或uwsgi.ini,仅调整lighttpd配置即可剥离URL前缀。

修改后的lighttpd配置如下:

server.modules += ( "mod_scgi" )
scgi.debug = 7
$HTTP["url"] =~ "^/forms" {
    scgi.protocol = "uwsgi"
    scgi.server   = ( "/" => 
        ((
            "host" => "localhost",
            "port" => 8000,
            "fix-root-scriptname" => "enable",
            "check-local" => "disable",
            "strip-request-url" => "/forms"  # 新增此行,剥离/forms前缀
        ))
    )
}

配置说明

  • strip-request-url会移除请求URL中匹配的前缀(此处为/forms),再将处理后的URL转发给uWSGI后端。
  • 此时代码路由可直接写根路径,无需包含/forms前缀:
    @app.route('/')
    def index():
        return "<span style='color:red'>I am app 1</span>"
    
  • 后续若需变更API路径(比如改成/submit),仅需修改两处:
    • $HTTP["url"] =~ "^/submit"
    • strip-request-url => "/submit"
      代码和uwsgi.ini完全不需要改动。

这个方案避开了mod_rewrite在$HTTP["url"]段内的限制,直接通过mod_scgi自身参数完成URL前缀剥离,完全匹配你的需求。

内容的提问来源于stack exchange,提问作者Fred Helmers

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 20:12:19