从 SSL 重定向到非 SSL 页面

从 SSL 重定向到非 SSL 页面

我正在尝试使用 Lighttpd 配置文件中的重定向强制在我的网站的某些页面上使用 SSL 和非 SSL。我已将重定向到 SSL 运行正常:

$HTTP["host"] == "www.site.com:80" {
     url.redirect = ( "(login|register/payment|resetpassword|account/password)" => "https://www.site.com/$1" )
}

现在我试图反过来做,但我无法让模式正确命中(在 apache 下使用 .htaccess 有一个副本可以正常工作):

$HTTP["host"] == "www.site.com:443" {
     url.redirect = ( "!(login|register/payment|resetpassword|account/password|images|css|javascript|minify/minify.php|states)" => "http://www.site.com/$1" )
}

我尝试过多种组合,但通常最终都会陷入无限重定向循环,因为第二个在 SSL 端口上匹配所有 URL,或者根本不触发。有什么建议吗?

答案1

尝试使用 (?!: 而不是 !( 来进行否定匹配。

 url.redirect = ( "(?!:login|register/payment|resetpassword|account/password|images|css|javascript|minify/minify.php|states)" => "http://www.site.com/$1" )

相关内容