クライアントブラウザでサポートされている場合は、私のウェブサイトへのHTTPリクエストをHTTPSにリダイレクトしたいと思います。私のWebサーバーはlighttpdです。
答え1
これが私が手動で行った方法です。安全でないリクエストヘッダーのアップグレード。 lighttpdに関するドキュメントが見つからず、共有しているのにうまくいくようです。
ドメインの lighttpd 構成に以下を追加します。
$HTTP["host"] =~ "^example\.com$" {
$HTTP["scheme"] == "http" {
$REQUEST_HEADER["Upgrade-Insecure-Requests"] == "1" {
# Follows https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Upgrade-Insecure-Requests
# Adding the header only works if mod_setenv is loaded before mod_redirect in the server config!
# (See https://redmine.lighttpd.net/issues/1895)
setenv.add-response-header = (
"Vary" => "Upgrade-Insecure-Requests"
)
url.redirect-code = 307
url.redirect = ("/(.*)" => "https://example.com/$1")
}
}
# ... any extra configuration for domain example.com ...
}
変更を適用するには、lighttpdを再起動してください。
注:これを行うには、mod_setenvとmod_redirectをロードする必要があり、リダイレクト応答の一部として追加のヘッダーを送信する必要がないとします。
答え2
2007年のlighttpdドキュメントの公式ソースは次のwikiページです:https://wiki.lighttpd.net/HowToRedirectHttpToHttps
lighttpdの最新バージョンでは:
server.modules += ("mod_redirect")
$HTTP["scheme"] == "http" {
url.redirect = ("" => "https://${url.authority}${url.path}${qsa}")
url.redirect-code = 308
}
到着適切にVary: Upgrade-Insecure-Requests
応答ヘッダーを使用してすべての要求http
に応答する可能https
リダイレクトされ、Upgrade-Insecure-Requests
設定されている場合にのみ次にリダイレクトされます。
server.modules += ("mod_setenv", "mod_redirect")
$HTTP["scheme"] == "http" {
# Follows https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Upgrade-Insecure-Requests
# Adding the header only works if mod_setenv is loaded before mod_redirect in lighttpd.conf!
# (See https://redmine.lighttpd.net/issues/1895)
setenv.add-response-header = ("Vary" => "Upgrade-Insecure-Requests")
$REQUEST_HEADER["Upgrade-Insecure-Requests"] == "1" {
url.redirect = ("" => "https://${url.authority}${url.path}${qsa}")
url.redirect-code = 308
}
}