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/" )
}
}
}
我使用 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/" )
}
}
}