Ligtpd 正则表达式重定向所有匹配模式的页面,除了一个

Lighttpd regex to redirect all pages matching a pattern except for one

我使用 lighttpd 成功重定向了所有以以下内容开头的页面:

http://www.domain.com/cgi-bin/MDM/

到相应的安全版本使用这个:

$HTTP["scheme"] == "http" {
   $HTTP["host"] == "www.domain.com" {
   url.redirect = ( "^/cgi-bin/MDM/(.*)" => "https://www.domain.com/" )
   }
}

这很好用。但现在我发现一个这样的页面不能作为 HTTPS 服务,因为第 3 方脚本链接到非 HTTPS 元素。所以我想排除那一页:

http://www.domain.com/cgi-bin/MDM/page.html

我尝试了很多方法,但似乎无法制定正确的规则。如有任何想法,我们将不胜感激。

您可以使用 != 从重定向中排除任何 URL:

$HTTP["scheme"] == "http" {
  $HTTP["host"] == "www.domain.com" {
    $HTTP["url"] != "/cgi-bin/MDM/page.html" {
      url.redirect = ( "^/cgi-bin/MDM/(.*)" => "https://www.domain.com/" )
    }
  }
}